zoukankan      html  css  js  c++  java
  • 通过获取客户端Json数据字符串,反序列化为实体对象的一段代码

    #region 保存候选人数据
            /// <summary>
            /// 保存候选人数据
            /// </summary>
            /// <param name="entity"></param>
            /// <returns></returns>
            [AdminAuthorize]
            [ValidateInput(false)]
            [AcceptVerbs(HttpVerbs.Post)]
            public ActionResult Save(matchjob.Domain.Candidate entity)
            {
                if (entity.Id == 0)
                {
                    entity.CreateTime = DateTime.Now;
                    this.CandidateManager.Save(entity);
    
                    var json = Request.Form["candidateItemsJsonValue"];
                    if (String.IsNullOrEmpty(json))
                    {
                        goto LABEL_END;
                    }
    
                    using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json)))
                    {
                        DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(matchjob.Web.UI.Models.TTTT_A));
                        var a = (matchjob.Web.UI.Models.TTTT_A)serializer.ReadObject(ms);
    
                        foreach (var p in a.Positions)
                        {
                            var item = new matchjob.Domain.CandidateItem();
                            item.Position = p.Name;
                            item.Candidate = entity;
                            item.CreateTime = DateTime.Now;
                            item.UpdateTime = item.CreateTime;
                            CandidateItemManager.Save(item);
    
                            foreach (var u in p.Users)
                            {
                                int Score, Experience, Interest, Salary;
                                Int32.TryParse(u.Score, out Score);
                                Int32.TryParse(u.Experience, out Experience);
                                Int32.TryParse(u.Interest, out Interest);
                                Int32.TryParse(u.Salary, out Salary);
    
                                var item2 = new matchjob.Domain.CandidateUser();
                                item2.CandidateItem = item;
                                item2.Remark = u.Remark;
                                item2.Score = Score;
                                item2.UserInfo = new UserInfo();
                                item2.UserInfo.Id = u.UserInfoId;
                                item2.Experience = Experience;
                                item2.Interest = Interest;
                                item2.Salary = Salary;
                                item2.CreateTime = DateTime.Now;
                                item2.UpdateTime = item.CreateTime;
                                CandidateUserManager.Save(item2);
                            }
                        }
                    }
    
                    LABEL_END:
                    {
    
                    }
                }
                else
                {
                    var model = this.CandidateManager.Get(entity.Id);
                    model.CompanyName = entity.CompanyName;
                    model.ValidateCode = entity.ValidateCode;
    
                    this.CandidateManager.Update(model);
    
                    var json = Request.Form["candidateItemsJsonValue"];
                    if (String.IsNullOrEmpty(json))
                    {
                        goto LABEL_DEL;
                    }
    
                    using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json)))
                    {
    
                        DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(matchjob.Web.UI.Models.TTTT_A));
                        var a = serializer.ReadObject(ms) as matchjob.Web.UI.Models.TTTT_A;
    
                        foreach (var p in a.Positions)
                        {
                            var item = new matchjob.Domain.CandidateItem();
                            var delUsers = new List<matchjob.Domain.CandidateUser>();
                            item.Id = p.Id;
                            item.Position = p.Name;
                            item.Candidate = model;
    
                            if (p.Id != 0)
                            {
                                item = CandidateItemManager.Get(p.Id);
                                item.Position = p.Name;
                            }
    
                            if (p.Id != 0)
                            {
                                item.UpdateTime = DateTime.Now;
                                CandidateItemManager.Update(item);
    
                                delUsers = item.CandidateUsers.Where(CUser => !p.Users.Contains(new Models.TTTT_C { UserInfoId = CUser.UserInfo.Id }, new CandidateUserComparer())).ToList();
                            }
                            else
                            {
                                item.CreateTime = DateTime.Now;
                                item.UpdateTime = item.CreateTime;
                                CandidateItemManager.Save(item);
                            }
    
                            ///更新和增加User
                            foreach (var u in p.Users)
                            {
                                int Score, Experience, Interest, Salary;
                                Int32.TryParse(u.Score, out Score);
                                Int32.TryParse(u.Experience, out Experience);
                                Int32.TryParse(u.Interest, out Interest);
                                Int32.TryParse(u.Salary, out Salary);
    
                                var item2 = new matchjob.Domain.CandidateUser();
                                item2.CandidateItem = item;
                                item2.Remark = u.Remark;
                                item2.Score = Score;
                                item2.UserInfo = new UserInfo();
                                item2.UserInfo.Id = u.UserInfoId;
                                item2.Id = u.Id;
                                item2.Experience = Experience;
                                item2.Interest = Interest;
                                item2.Salary = Salary;
    
                                if (u.Id != 0)
                                {
                                    item2 = CandidateUserManager.Get(u.Id);
    
                                    item2.CandidateItem = item;
                                    item2.Remark = u.Remark;
                                    item2.Score = Score;
                                    item2.Experience = Experience;
                                    item2.Interest = Interest;
                                    item2.Salary = Salary;
                                }
    
                                if (u.Id != 0)
                                {
                                    item2.UpdateTime = DateTime.Now;
                                    CandidateUserManager.Update(item2);
                                }
                                else
                                {
                                    item2.CreateTime = DateTime.Now;
                                    item2.UpdateTime = item2.CreateTime;
                                    CandidateUserManager.Save(item2);
                                }
                            }
                            ///删除User
                            foreach (var u in delUsers)
                            {
                                foreach(var f in CandidateForwardUserManager.GetByCandidateUserId(u.Id))
                                {
                                    CandidateForwardUserManager.Delete(f.Id);
                                }
                                CandidateUserManager.Delete(u.Id);
                            }
                        }
                    }
    
                    LABEL_DEL:
                    ///删除已经移出的职位数据
                    foreach (var itemid in Request.Form["candidateItemsDel"].Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries))
                    {
                        var users = CandidateUserManager.GetsByCandidateItemId(Convert.ToInt64(itemid));
    
                        for (int k = 0; k < users.Count; k++)
                        {
                            ///先删除关联对象
                            foreach (var f in CandidateForwardUserManager.GetByCandidateUserId(users[k].Id))
                            {
                                CandidateForwardUserManager.Delete(f.Id);
                            }
                            CandidateUserManager.Delete(users[k].Id);
                        }
    
                        ///先删除关联对象
                        foreach (var f in CandidateForwardManager.GetByCandidateItemId(Convert.ToInt64(itemid)))
                        {
                            CandidateForwardManager.Delete(f.Id);
                        }
                        CandidateItemManager.Delete(Convert.ToInt64(itemid));
                    }
                }
    
                return Json(new { IsSuccess = true, Message = "保存成功" }, "text/plain", JsonRequestBehavior.AllowGet);
            }
            #endregion

        public class TTTT_e
        {
            public TTTT_B[] Positions { get; set; }
        }
    
        public class TTTT_B
        {
            public long Id { get; set; }
            public String Name { get; set; }
            public TTTT_C[] Users { get; set; }
        }
    
        public class TTTT_C
        {
            public long Id { get; set; }
            public long UserInfoId { get; set; }
            public String Score { get; set; }
            public String Remark { get; set; }
            public String Name { get; set; }
    
            public String Experience { get; set; }
            public String Interest { get; set; }
            public String Salary { get; set; }
        }
    
    
    
     
  • 相关阅读:
    Python中的unittest和logging
    android短彩信附件机制
    Android Mms之:深入MMS支持
    Android 源码阅读之SMS,MMS
    深度分析:Android4.3下MMS发送到附件为音频文件(音频为系统内置音频)的彩信给自己,添加音频-发送彩信-接收彩信-下载音频附件-预览-播放(一,添加附件)
    使用adb命令对手机进行截屏保存到电脑,SDCard
    Android中检测字符编码(GB2312,ASCII,UTF8,UNICODE,TOTAL——ENCODINGS)方法(二)
    解决新建短信时,输入“+86”,然后输入联系人名字“1”,按删除键之后,联系人变为“1”,删除操作为达到预期结果
    解决:People下面选择分享可见联系人,选择多个联系人后通过短信分享,短信中只显示一个联系人
    解决:短信添加录音附件,录音,没有录音时间限制,超出彩信最大限制也正常录音
  • 原文地址:https://www.cnblogs.com/hznet/p/4331714.html
Copyright © 2011-2022 走看看