public static object Update(OrgContactVm data, string password) { ApplicationUser user = null; try { if (data.ContactId == 0) //New User? { user = new ApplicationUser() { UserName = data.UserName, Email = data.UserName }; var ir = UserMgr.Create(user, password); if (!ir.Succeeded) { return(IdentityErrors(ir.Errors)); } } var mr = OrgMgr.UpdateOrgContact(Utils.LoggedUser, ref data); if (mr.Status == ResponseStatus.Success) { return(Utils.ServiceResponse(PageCode, mr)); } if (user != null) { UserMgr.Delete(user); } return(Utils.ServiceResponse(PageCode, mr)); } catch (Exception ex) { if (user != null) { UserMgr.Delete(user); } return(Utils.ServiceResponse(new ModelResponse(ex))); } }
public ModelResponse UpdateOrgContact(UserInfo user, ref OrgContactVm vm) { try { //Authorization if (user == null) { return(new ModelResponse(101)); } if (string.IsNullOrWhiteSpace(user.UserId)) { return(new ModelResponse(101)); } if (PUserRepo.GetUserClass(user) != UserClass.OrgAdmin) { return(new ModelResponse(101)); } //Validations if (vm.UserName.HasNoValue() || vm.FullName.IsNullOrWhiteSpace() || vm.Department.IsNullOrWhiteSpace() || vm.JobTitle.IsNotASubCode()) { return(new ModelResponse(1)); } //Save to DB vm.PortalUserId = (long)user.PortalUserId; Repo.UpdateOrgContact(ref vm, user.UserId); } catch (Exception ex) { return(new ModelResponse(ex)); } return(new ModelResponse(0, vm.ContactId)); }
public long UpdateOrgContact(ref OrgContactVm vm, string userId) { using (var db = new LMISEntities()) using (var transaction = db.Database.BeginTransaction()) { try { var contactId = vm.ContactId; var contactUserName = vm.UserName; var contactUserId = db.AspNetUsers.Where(u => u.UserName == contactUserName).Select(u => u.Id).Single(); if (vm.Mobile == null) { vm.Mobile = ""; } if (vm.Telephone == null) { vm.Telephone = ""; } OrganizationContact_Info orgContact; if (contactId < 1) //Insert { orgContact = db.OrganizationContact_Info.Add(new OrganizationContact_Info() { PortalUsersID = vm.PortalUserId, UserID = contactUserId, JobTitleID = vm.JobTitle, Mobile = vm.Mobile, Telephone = vm.Telephone, Fax = vm.Fax, Email = contactUserName, IsApproved = (byte)Approval.Approved, PostDate = DateTime.UtcNow, PostUSerID = userId }); } else //Update { orgContact = db.OrganizationContact_Info.Single(r => r.IsDeleted == null && r.OrganizationContactID == contactId); orgContact.JobTitleID = vm.JobTitle; orgContact.Mobile = vm.Mobile; orgContact.Telephone = vm.Telephone; orgContact.Fax = vm.Fax; orgContact.UpdateDate = DateTime.UtcNow; orgContact.UpdateUSerID = userId; db.OrganizationContactInfoDetails.RemoveRange(orgContact.OrganizationContactInfoDetails); } var orgContactDets = Utils.MultilingualDataSet( new Dictionary <string, GlobalString> { { "c1", vm.FullName }, { "c2", vm.Department } }); foreach (var r in orgContactDets) { orgContact.OrganizationContactInfoDetails.Add(new OrganizationContactInfoDetail() { LanguageID = r["c1"].L, ContactFullName = r["c1"].T, Department = r["c2"].T, }); } db.SaveChanges(); transaction.Commit(); vm.ContactId = (long)orgContact.OrganizationContactID; } catch (DbEntityValidationException ex) { transaction.Rollback(); ExceptionDispatchInfo.Capture(ex).Throw(); } catch (Exception ex) { transaction.Rollback(); ExceptionDispatchInfo.Capture(ex).Throw(); } } return(vm.ContactId); }