コード例 #1
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);
        }