Пример #1
0
        public void Update(ref OrganizationVM vm, string userId)
        {
            var dbContext = new LMISEntities();

            var portalUserId = vm.PortalUsersID;

            #region 1st: Update portal user

            var portalUser = dbContext.PortalUsers.Single(pu => pu.PortalUsersID == portalUserId);

            // portalUser.PortalUsersID = organizationVM.PortalUser.PortalUsersID;
            portalUser.IDType           = vm.PortalUser.IDType;
            portalUser.IDNumber         = vm.PortalUser.IDNumber;
            portalUser.UserCategory     = vm.PortalUser.UserCategory;
            portalUser.UserSubCategory  = vm.PortalUser.UserSubCategory;
            portalUser.TrainingProvider = vm.PortalUser.TrainingProvider;
            portalUser.Employer         = vm.PortalUser.Employer;
            portalUser.JobSeeker        = vm.PortalUser.JobSeeker;
            portalUser.TrainingSeeker   = vm.PortalUser.TrainingSeeker;
            portalUser.Researcher       = vm.PortalUser.Researcher;
            portalUser.Internal         = vm.PortalUser.Internal;
            portalUser.IsSubscriper     = vm.PortalUser.IsSubscriper;

            dbContext.Entry(portalUser).State = EntityState.Modified;
            dbContext.SaveChanges();

            #endregion

            using (var transaction = dbContext.Database.BeginTransaction())
            {
                #region 3rd: Populate Organization object

                var organizationObject = dbContext.OrganizationDetails.Single(org => org.PortalUsersID == portalUserId);
                PopulateRecord(ref organizationObject, vm, vm.PortalUsersID);
                organizationObject.UpdateDate   = DateTime.UtcNow;
                organizationObject.UpdateUserID = userId;

                #endregion

                #region remove old translations
                var details = dbContext.OrganizationDetails_Det
                              .Where(r => r.PortalUsersID == portalUserId)
                              .ToList();
                foreach (var row in details)
                {
                    organizationObject.OrganizationDetails_Det.Remove(row);
                }

                dbContext.OrganizationDetails_Det.RemoveRange(details);
                //dbContext.SaveChanges();
                #endregion

                #region 4th: Add translations
                foreach (var translation in vm.Translation.Where(t => t.OrganizationName != null || t.Address != null || t.OtherIndustryType != null))
                {
                    var translationObject = new OrganizationDetails_Det
                    {
                        PortalUsersID     = portalUser.PortalUsersID,
                        LanguageID        = translation.LanguageID,
                        OrganizationName  = translation.OrganizationName,
                        Address           = translation.Address,
                        OtherIndustryType = translation.OtherIndustryType
                    };
                    organizationObject.OrganizationDetails_Det.Add(translationObject);
                }
                #endregion

                #region 6th: Save Organization object
                organizationObject.UpdateUserID = userId;
                organizationObject.UpdateDate   = DateTime.UtcNow;

                dbContext.Entry(organizationObject).State = EntityState.Modified;
                dbContext.SaveChanges();
                transaction.Commit();
                #endregion
            }
        }
Пример #2
0
        public void Post(ref OrganizationVM vm, string userId)
        {
            var dbContext = new LMISEntities();

            #region 1st: Add portal user

            var 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

            #region 2nd: Add AspNetUser
            //    var user = organizationVM.ContactPersons.FirstOrDefault().User;
            //    AspNetUser aspNetUser = new AspNetUser
            //    {
            //        Id = Guid.NewGuid().ToString(),
            //        Email = user.Email,
            //        EmailConfirmed = false,
            //        PasswordHash = user.PasswordHash,
            //        SecurityStamp = user.SecurityStamp,
            //        PhoneNumber = user.PhoneNumber,
            //        PhoneNumberConfirmed = false,
            //        TwoFactorEnabled = user.TwoFactorEnabled,
            //        LockoutEnabled = false,
            //        AccessFailedCount = 0,
            //        UserName = user.Email
            //    };
            //    dbContext.AspNetUsers.Add(aspNetUser);
            //    dbContext.SaveChanges();
            #endregion

            using (var transaction = dbContext.Database.BeginTransaction())
            {
                #region 3rd: Populate Organization object
                var organizationObject = new OrganizationDetail();

                PopulateRecord(ref organizationObject, vm, portalUser.PortalUsersID);
                organizationObject.PostDate   = DateTime.UtcNow;
                organizationObject.PostUserID = userId;
                #endregion

                #region 4th: Add translations
                foreach (var translation in vm.Translation.Where(t => t.OrganizationName != null || t.Address != null || t.OtherIndustryType != null))
                {
                    OrganizationDetails_Det translationObject = new OrganizationDetails_Det
                    {
                        PortalUsersID     = portalUser.PortalUsersID,
                        LanguageID        = translation.LanguageID,
                        OrganizationName  = translation.OrganizationName,
                        Address           = translation.Address,
                        OtherIndustryType = translation.OtherIndustryType
                    };
                    organizationObject.OrganizationDetails_Det.Add(translationObject);
                }
                #endregion

                #region 5th: Add Contact persons
                foreach (var person in vm.ContactPersons)
                {
                    var contactPerson = new OrganizationContact_Info
                    {
                        OrganizationContactID = person.OrganizationContactID,
                        PortalUsersID         = portalUser.PortalUsersID,
                        JobTitleID            = person.JobTitleID,
                        Telephone             = person.Telephone,
                        Mobile = person.Mobile,
                        Fax    = person.Fax,
                        Email  = person.Email,
                        AuthorizationletterPath = person.AuthorizationletterPath,
                        IsApproved   = person.IsApproved,
                        RejectReason = person.RejectReason,
                        IsDeleted    = person.IsDeleted,
                        DeleteReason = person.DeleteReason,
                        PostDate     = DateTime.Now,
                        PostUSerID   = userId,
                        UserID       = userId,
                    };
                    organizationObject.OrganizationContact_Info.Add(contactPerson);

                    #region 6th: Add translations to contact person
                    foreach (var translation in person.Translation.Where(t => t.ContactFullName != null && t.Department != null))
                    {
                        var translationObject = new OrganizationContactInfoDetail
                        {
                            OrganizationContactID = contactPerson.OrganizationContactID,
                            LanguageID            = translation.LanguageID,
                            ContactFullName       = translation.ContactFullName,
                            Department            = translation.Department
                        };
                        contactPerson.OrganizationContactInfoDetails.Add(translationObject);
                    }
                    #endregion
                }
                #endregion

                #region 6th: Save Organization object
                dbContext.OrganizationDetails.Add(organizationObject);
                dbContext.SaveChanges();
                transaction.Commit();
                #endregion
            }
        }