Ejemplo n.º 1
0
        public async Task <IActionResult> EditSelfAgency([FromBody] EditAgencyRequest request)
        {
            var(_, isFailure, agency, error) = await _agencyService.Edit(await _agentContextService.GetAgent(), request, LanguageCode);

            if (isFailure)
            {
                return(BadRequest(ProblemDetailsBuilder.Build(error)));
            }

            return(Ok(agency));
        }
Ejemplo n.º 2
0
        public JsonResult Agency_Update(EditAgencyRequest request)
        {
            GeneralResponse response = new GeneralResponse();

            #region Access Check
            bool hasPermission = GetEmployee().IsGuaranteed("Agency_Update");
            if (!hasPermission)
            {
                response.ErrorMessages.Add("AccessDenied");
                return(Json(response, JsonRequestBehavior.AllowGet));
            }
            #endregion

            response = this._agencyService.EditAgency(request, GetEmployee().ID);

            return(Json(response, JsonRequestBehavior.AllowGet));
        }
Ejemplo n.º 3
0
        public Task <Result <SlimAgencyInfo> > Edit(AgentContext agent, EditAgencyRequest editAgencyRequest,
                                                    string languageCode = LocalizationHelper.DefaultLanguageCode)
        {
            return(Validate()
                   .Tap(UpdateAgencyRecord)
                   .Bind(GetUpdatedAgencyInfo));


            Result Validate()
            {
                return(GenericValidator <EditAgencyRequest> .Validate(v =>
                {
                    v.RuleFor(c => c.Address).NotEmpty();
                    v.RuleFor(c => c.Phone).NotEmpty();
                    v.RuleFor(c => c.BillingEmail).EmailAddress().When(i => !string.IsNullOrWhiteSpace(i.BillingEmail));
                }, editAgencyRequest));
            }

            async Task UpdateAgencyRecord()
            {
                var agencyRecord = await _context.Agencies.SingleAsync(a => a.Id == agent.AgencyId);

                agencyRecord.Address                = editAgencyRequest.Address;
                agencyRecord.Phone                  = editAgencyRequest.Phone;
                agencyRecord.Fax                    = editAgencyRequest.Fax;
                agencyRecord.PostalCode             = editAgencyRequest.PostalCode;
                agencyRecord.Website                = editAgencyRequest.Website;
                agencyRecord.BillingEmail           = editAgencyRequest.BillingEmail;
                agencyRecord.VatNumber              = editAgencyRequest.VatNumber;
                agencyRecord.PreferredPaymentMethod = editAgencyRequest.PreferredPaymentMethod;

                agencyRecord.Modified = _dateTimeProvider.UtcNow();

                _context.Update(agencyRecord);
                await _context.SaveChangesAsync();
            }

            Task <Result <SlimAgencyInfo> > GetUpdatedAgencyInfo()
            => Get(agent, languageCode);
        }
Ejemplo n.º 4
0
        public GeneralResponse EditAgency(EditAgencyRequest request, Guid modifiedEmployeeID)
        {
            GeneralResponse response = new GeneralResponse();

            try
            {
                Agency agency = new Agency();
                agency = _agencyRepository.FindBy(request.ID);

                if (agency != null)
                {
                    agency.ModifiedDate = PersianDateTime.Now;

                    agency.ModifiedEmployee = _employeeRepository.FindBy(modifiedEmployeeID);
                    if (request.AgencyName != null)
                    {
                        agency.AgencyName = request.AgencyName;
                    }
                    if (request.ManagerName != null)
                    {
                        agency.ManagerName = request.ManagerName;
                    }
                    if (request.Phone1 != null)
                    {
                        agency.Phone1 = request.Phone1;
                    }
                    if (request.Phone2 != null)
                    {
                        agency.Phone2 = request.Phone2;
                    }
                    if (request.Mobile != null)
                    {
                        agency.Mobile = request.Mobile;
                    }
                    if (request.Address != null)
                    {
                        agency.Address = request.Address;
                    }
                    if (request.Note != null)
                    {
                        agency.Note = request.Note;
                    }

                    agency.Discontinued = request.Discontinued;

                    #region RowVersion - Validation
                    if (agency.RowVersion != request.RowVersion)
                    {
                        response.ErrorMessages.Add("EditConcurrencyKey");
                        return(response);
                    }
                    else
                    {
                        agency.RowVersion += 1;
                    }

                    if (agency.GetBrokenRules().Count() > 0)
                    {
                        foreach (BusinessRule businessRule in agency.GetBrokenRules())
                        {
                            response.ErrorMessages.Add(businessRule.Rule);
                        }

                        return(response);
                    }

                    #endregion

                    _agencyRepository.Save(agency);
                }
                else
                {
                    response.ErrorMessages.Add("NoItemToEditKey");
                }
                _uow.Commit();
            }
            catch (Exception ex)
            {
                response.ErrorMessages.Add(ex.Message);
                if (ex.InnerException != null)
                {
                    response.ErrorMessages.Add(ex.InnerException.Message);
                }
            }

            return(response);
        }