public long PostPersonalInformation(ref IndividualRegisterationVm vm, UserInfo user) { using (var db = new LMISEntities()) using (var transaction = db.Database.BeginTransaction()) { try { var id = user.PortalUserId; if (id > 0) //Update { var tp = db.PortalUsers.Where(r => r.PortalUsersID == user.PortalUserId) .ToList().Single(); tp.IDType = vm.IdType; tp.IDNumber = vm.NationailtyIDorPassportID; var tr = db.IndividualDetails .Where(r => r.PortalUsersID == user.PortalUserId) .ToList().Single(); tr.Is_Approved = 1; tr.Email = vm.Email; tr.MobileNo = vm.MobileNumber; tr.TelephoneNo = vm.TelephoneNo; tr.GenderId = vm.Gender; tr.DateOfBirth = vm.BirthDate; tr.MaritalStatusId = vm.Maritalstatus; tr.MilitaryStatus_Id = vm.Militarystatus; tr.NationalityId = vm.Nationality; tr.CountryID = vm.Country; tr.CityID = vm.City; tr.AllowtoViewMyInfo = vm.AllowtoViewMyInfo; tr.UpdateUserID = user.UserId; tr.IndividualMedicalID = vm.IndividualMedicalId; tr.UpdateUserID = user.UserId; tr.UpdateDate = DateTime.UtcNow; vm.RegisterationId = (long)tr.PortalUsersID; var dr = db.IndividualDetailsDets .Where(r => r.PortalUsersID == user.PortalUserId) .ToList(); db.IndividualDetailsDets.RemoveRange(dr); } else //Insert { var tr = new PortalUser { IDType = vm.IdType, IDNumber = vm.NationailtyIDorPassportID, JobSeeker = true, TrainingSeeker = true, UserCategory = "IND", UserSubCategory = "IND" }; db.PortalUsers.Add(tr); db.SaveChanges(); vm.RegisterationId = (long)tr.PortalUsersID; var dr = new IndividualDetail() { PortalUsersID = vm.RegisterationId, Email = vm.Email, MobileNo = vm.MobileNumber, TelephoneNo = vm.TelephoneNo, GenderId = vm.Gender, DateOfBirth = vm.BirthDate, MaritalStatusId = vm.Maritalstatus, MilitaryStatus_Id = vm.Militarystatus, NationalityId = vm.Nationality, CountryID = vm.Country, CityID = vm.City, // PhotoPath = "g", Is_Approved = 1,//(byte)vm.Approval, AllowtoViewMyInfo = vm.AllowtoViewMyInfo, //RejectReason = "v", PostDate = System.DateTime.Now, UpdateDate = System.DateTime.Now, PostUserID = user.UserId, UpdateUserID = user.UserId, IndividualMedicalID = vm.IndividualMedicalId, UserID = user.UserId }; db.IndividualDetails.Add(dr); db.SaveChanges(); } // Insert More Details var mdr = new IndividualDetailsDet(); mdr.PortalUsersID = vm.RegisterationId; foreach (var r in vm.FirstName.ToLocalStrings()) { mdr.LanguageID = r.L; mdr.FirstName = r.T; db.IndividualDetailsDets.Add(mdr); } foreach (var r in vm.LastName.ToLocalStrings()) { mdr.LanguageID = r.L; mdr.LastName = r.T; db.IndividualDetailsDets.Add(mdr); } foreach (var r in vm.Address.ToLocalStrings()) { mdr.LanguageID = r.L; mdr.Address = r.T; db.IndividualDetailsDets.Add(mdr); } db.IndividualDetailsDets.Add(mdr); db.SaveChanges(); transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); ExceptionDispatchInfo.Capture(ex).Throw(); } } return(vm.RegisterationId); }
public void Post(ref IndividualVM vm, string userId) { var dbContext = new LMISEntities(); try { #region 1st: Add portal user PortalUser portalUser = new PortalUser { PortalUsersID = vm.PortalUser.PortalUsersID, IDType = vm.PortalUser.IDType, IDNumber = vm.PortalUser.IDNumber, UserCategory = vm.PortalUser.UserCategory, UserSubCategory = vm.PortalUser.UserSubCategory, TrainingProvider = vm.PortalUser.TrainingProvider, Employer = vm.PortalUser.Employer, JobSeeker = vm.PortalUser.JobSeeker, TrainingSeeker = vm.PortalUser.TrainingSeeker, Researcher = vm.PortalUser.Researcher, Internal = vm.PortalUser.Internal, IsSubscriper = vm.PortalUser.IsSubscriper }; dbContext.PortalUsers.Add(portalUser); dbContext.SaveChanges(); #endregion using (var transaction = dbContext.Database.BeginTransaction()) { #region 2nd: Populate Individual object IndividualDetail individualObject = PopulateRecord(vm, portalUser.PortalUsersID, userId); individualObject.PostDate = DateTime.UtcNow; #endregion #region trd: Add translations foreach ( IndividualTranslationVM translation in vm.Translation.Where(t => t.FirstName != null || t.LastName != null || t.Address != null)) { IndividualDetailsDet translationObject = new IndividualDetailsDet { PortalUsersID = portalUser.PortalUsersID, LanguageID = translation.LanguageID, FirstName = translation.FirstName, LastName = translation.LastName, Address = translation.Address }; individualObject.IndividualDetailsDets.Add(translationObject); } #endregion #region 4th: Save Individual object dbContext.IndividualDetails.Add(individualObject); dbContext.SaveChanges(); transaction.Commit(); #endregion } } catch (DbEntityValidationException e) { foreach (var eve in e.EntityValidationErrors) { //Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", } throw; } catch { throw; } }