コード例 #1
0
        public async Task <SaveResult> SaveEntity(MemberStagingViewModel viewModel)
        {
            SaveResult saveResult = new SaveResult();
            Dictionary <bool, string> dictionary = new Dictionary <bool, string>();
            bool isNew  = false;
            var  entity = new MemberStaging();

            viewModel.Address.SessionUserId = viewModel.SessionUserId;

            try
            {
                saveResult = await SaveAddress(viewModel);

                if (saveResult.IsSuccess)
                {
                    if (_context.MemberStaging.IgnoreQueryFilters().Any(a => a.Id == viewModel.Id))
                    {
                        entity = await _context.MemberStaging.IgnoreQueryFilters().FirstOrDefaultAsync(a => a.Id == viewModel.Id);

                        entity = viewModel.ToEntity(entity);
                        _context.MemberStaging.Update(entity);
                    }
                    else
                    {
                        isNew  = true;
                        entity = viewModel.ToEntity(entity);
                        _context.MemberStaging.Add(entity);
                    }
                    await _context.SaveChangesAsync();

                    //if(isNew)
                    //{
                    //    await _queuedEmailBL.GenerateRegistrationNotificationEmail(viewModel, MessageTemplateConst.RegistrationNotification);
                    //}
                }
            }
            catch (DbUpdateException upDateEx)
            {
                var    results = upDateEx.GetSqlerrorNo();
                string msg     = results == (int)SqlErrNo.FK ? ConstEntity.MissingValueMsg : ConstEntity.UniqueKeyMsg;
                saveResult = dictionary.GetValidateEntityResults(msg).ToSaveResult();
            }
            catch (Exception ex)
            {
                saveResult.Message = CrudError.DeleteErrorMsg;
            }


            return(saveResult);
        }
コード例 #2
0
        /// <summary>
        /// Convert Corporate Object into Corporate Entity
        /// </summary>
        ///<param name="model">Corporate</param>
        ///<param name="CorporateEntity">DataAccess.Corporate</param>
        ///<returns>DataAccess.Corporate</returns>
        public static MemberStaging ToEntity(this MemberStagingViewModel model, MemberStaging entity
                                             )
        {
            if (entity.Id == 0)
            {
                entity.CreatedUserId = model.SessionUserId;
            }
            else
            {
                entity.UpdatedUserId    = model.SessionUserId;
                entity.UpdatedTimestamp = DateTime.Now;
            }
            entity.FirstName = model.FirstName;
            entity.Surname   = model.Surname;
            entity.ContactNo = model.CellPhone;
            entity.Email     = model.Email;
            entity.Initials  = model.Initials;
            entity.OtherName = model.OtherName;
            entity.TitleId   = model.TitleId;
            entity.BirthDate = model.BirthDate;
            entity.GenderId  = model.GenderId;

            if (model.IDTypeId == 1)
            {
                entity.IDNumber = model.IDNumber;
            }
            else
            {
                entity.IDNumber = model.AlternateIDNumber;
            }
            entity.IDTypeId             = model.IDTypeId;
            entity.CountryId            = model.NationalityId;
            entity.AddressId            = model.AddressId;
            entity.IsFromFront          = model.IsFromFront;
            entity.IsFinalised          = model.IsFinalised;
            entity.Occupation           = model.Occupation;
            entity.Company              = model.Company;
            entity.WorkTelephone        = model.WorkTelephone;
            entity.HomeTelephone        = model.HomeTelephone;
            entity.EmmergencyContact1   = model.EmmergencyContact1;
            entity.EmmergencyContactNo1 = model.EmmergencyContactNo1;
            entity.EmmergencyContact2   = model.EmmergencyContact2;
            entity.EmmergencyContactNo2 = model.EmmergencyContactNo2;
            entity.MedicalAidName       = model.MedicalAidName;
            entity.MedicalAidNumber     = model.MedicalAidNumber;
            entity.PrevYearLicence      = model.PrevYearLicence;
            entity.CurrentYearLicence   = model.CurrentYearLicence;
            return(entity);
        }
コード例 #3
0
        /// <summary>
        /// Convert Corporate Entity  into Corporate Object
        /// </summary>
        ///<param name="model">MemberStagingViewModel</param>
        ///<param name="CorporateEntity">DataAccess.Corporate</param>
        ///<returns>MemberStagingViewModel</returns>
        public static MemberStagingViewModel ToViewModel(this MemberStaging entity,
                                                         MemberStagingViewModel model)
        {
            model.Id            = entity.Id;
            model.NationalityId = entity.CountryId;
            model.FirstName     = entity.FirstName;
            model.Surname       = entity.Surname;
            model.CellPhone     = entity.ContactNo;
            model.Email         = entity.Email;
            model.Initials      = entity.Initials;
            model.OtherName     = entity.OtherName;
            model.TitleId       = entity.TitleId ?? 0;
            model.GenderId      = entity.GenderId;
            model.IDNumber      = entity.IDNumber;
            model.IDTypeId      = entity.IDTypeId;
            model.AddressId     = entity.AddressId;
            model.AddressId     = entity.AddressId;
            model.BirthDate     = entity.BirthDate;
            model.IsFromFront   = entity.IsFromFront;
            // model.FullName = entity.FullName;
            model.BirthDateLongDate    = entity.BirthDate.ToCustomLongDate();
            model.Occupation           = entity.Occupation;
            model.Company              = entity.Company;
            model.WorkTelephone        = entity.WorkTelephone;
            model.HomeTelephone        = entity.HomeTelephone;
            model.EmmergencyContact1   = entity.EmmergencyContact1;
            model.EmmergencyContactNo1 = entity.EmmergencyContactNo1;
            model.EmmergencyContact2   = entity.EmmergencyContact2;
            model.EmmergencyContactNo2 = entity.EmmergencyContactNo2;
            model.PrevYearLicence      = entity.PrevYearLicence;
            model.CurrentYearLicence   = entity.CurrentYearLicence;
            model.MedicalAidNumber     = entity.MedicalAidNumber;
            model.MedicalAidName       = entity.MedicalAidName;


            return(model);
        }
コード例 #4
0
        public async Task <SaveResult> VerifyModel(MemberStagingViewModel viewModel)
        {
            SaveResult saveResult = new SaveResult();
            Dictionary <bool, string> dictionary = new Dictionary <bool, string>();

            var entity = new MemberStaging();


            try
            {
                if (_context.MemberStaging.IgnoreQueryFilters().Any(a => a.Id == viewModel.Id))
                {
                    entity = await _context.MemberStaging.IgnoreQueryFilters().FirstOrDefaultAsync(a => a.Id == viewModel.Id);

                    entity.IsFinalised = viewModel.IsFinalised;

                    if (!entity.IsFinalised)
                    {
                        entity.Comment    = viewModel.Comments;
                        entity.IsRejected = true;
                    }
                    _context.MemberStaging.Update(entity);

                    await _context.SaveChangesAsync();

                    saveResult.IsSuccess = true;

                    //send approval email
                    entity.ToViewModel(viewModel);
                    //allow user to create an account
                    if (entity.Id > 0)
                    {
                        saveResult.IsSuccess = true;
                        saveResult.Id        = entity.Id;

                        if (viewModel.IsFinalised)
                        {
                            //saveResult = await _personBL.GenerateEntity(viewModel);

                            //if (saveResult.IsSuccess)
                            //{
                            //    saveResult = await this.DeleteEntity(entity.Id);
                            //}
                        }
                        else
                        {
                            saveResult = await this.DeleteEntity(entity.Id);
                        }
                    }
                }
            }
            catch (DbUpdateException upDateEx)
            {
                var    results = upDateEx.GetSqlerrorNo();
                string msg     = results == (int)SqlErrNo.FK ? ConstEntity.MissingValueMsg : ConstEntity.UniqueKeyMsg;
                saveResult = dictionary.GetValidateEntityResults(msg).ToSaveResult();
            }
            catch (Exception ex)
            {
                saveResult.Message = CrudError.DeleteErrorMsg;
            }


            return(saveResult);
        }