Ejemplo n.º 1
0
        public ActionResult PersonalInfo(Guid id)
        {
            try
            {
                var model = new MembershipUserPersonalInfoViewModel();
                var user  = _membershipService.GetUser(id);

                model.Id = user.Id;
                var defaultCompany = user.Company;
                if (defaultCompany != null)
                {
                    model.DefaultCompanyId = user.Company.Id;
                }
                model.Email = user.Email;
                model.SelectedEmailTaskTypeIds = (user.EmailTaskTypes != null && user.EmailTaskTypes.Count > 0) ? user.EmailTaskTypes.Select(e => e.Id).ToList() : new List <int>();

                model.AvailableCompanies = new List <Company> {
                    WorkContext.CurrentMembershipUser.Company
                };
                model.AvailableEmailTaskTypes = _categoryService.GetByParentName("EmailTaskType");

                return(View(model));
            }
            catch (Exception e)
            {
                ErrorNotification(new Exception(e.Message));
                return(View(new MembershipUserPersonalInfoViewModel()));
            }
        }
Ejemplo n.º 2
0
        public ActionResult PersonalInfo(MembershipUserPersonalInfoViewModel model)
        {
            if (ModelState.IsValid)
            {
                using (var unitOfWork = UnitOfWorkManager.NewUnitOfWork())
                {
                    var user = _membershipService.GetUser(model.Id);
                    //foreach (var co in user.Companies)
                    //{
                    //    if (co.Id == model.DefaultCompanyId)
                    //    {
                    //        co.IsDefault = true;
                    //    }
                    //    else
                    //    {
                    //        co.IsDefault = false;
                    //    }
                    //}
                    user.Email = model.Email;
                    user.EmailTaskTypes.Clear();
                    var allEmailTaskTypes = _categoryService.GetByParentName("EmailTaskType");
                    foreach (var type in allEmailTaskTypes)
                    {
                        if (model.SelectedEmailTaskTypeIds.Contains(type.Id))
                        {
                            user.EmailTaskTypes.Add(type);
                        }
                    }

                    unitOfWork.Commit();

                    model.AvailableCompanies = new List <Company> {
                        WorkContext.CurrentMembershipUser.Company
                    };
                    model.AvailableEmailTaskTypes = allEmailTaskTypes;

                    SuccessNotification("修改成功");
                    return(View(model));
                }
            }
            else
            {
                ErrorNotification(new Exception("无效的模型状态"));
                return(RedirectToAction("PersonalInfo", new { @id = model.Id }));
            }
        }