示例#1
0
        public FinanceRequestWrapper SaveFinanceRequest(FinanceRequest financeRequest)
        {
            var request = GetOrCreateRequest(financeRequest);

            var validationResult = ValidateForCurrentUser(request);

            if (validationResult.Code != FinanceRequestOperationStatus.Success)
            {
                return(new FinanceRequestWrapper {
                    Status = validationResult
                });
            }

            request.InterestRate = financeRequest.InterestRate;
            request.Amount       = financeRequest.Amount;
            request.Purpose      = financeRequest.Purpose;
            request.MonthCount   = financeRequest.MonthCount;
            _context.FinanceRequests.Update(request);
            _context.SaveChanges();

            return(new FinanceRequestWrapper
            {
                FinanceRequest = request,
                Status = new FinanceRequestOperationStatus(FinanceRequestOperationStatus.Success)
            });
        }
示例#2
0
        public DataRespond insertFinance(FinanceRequest finance)
        {
            DataRespond data = new DataRespond();

            try
            {
                var fi = new Finance();
                fi.name     = finance.name;
                fi.moneys   = finance.moneys;
                fi.status   = finance.status;
                fi.cbid     = finance.cbid;
                fi.uscreate = finance.uscreate;
                fi.person   = finance.person;
                DateTime daycr = DateTime.ParseExact(finance.createday, "dd/MM/yyyy", CultureInfo.InvariantCulture);
                fi.createday = daycr;
                data.success = true;
                data.message = "insert succeses";
                m_financeResponsitory.insertFinance(fi);
            }
            catch (Exception e)
            {
                data.message = e.Message;
                data.error   = e;
                data.success = false;
            }

            return(data);
        }
        public IActionResult SaveFinanceRequest(FinanceRequest request)
        {
            var financeRequestWrapper = _financeService.SaveFinanceRequest(request);

            if (financeRequestWrapper.Status.Code != FinanceRequestOperationStatus.Success)
            {
                return(BadRequest(new MessageResponse(financeRequestWrapper.Status.Code)));
            }
            return(Ok(financeRequestWrapper.FinanceRequest));
        }
示例#4
0
        private FinanceRequest GetOrCreateRequest(FinanceRequest financeRequest)
        {
            if (financeRequest.Id.HasValue)
            {
                return(GetRequest(financeRequest.Id.Value));
            }

            financeRequest.Author       = _userService.GetCurrentUser();
            financeRequest.PublicNumber = _numberProvider.Generate(financeRequest);
            _context.FinanceRequests.Add(financeRequest);
            _context.SaveChanges();
            return(financeRequest);
        }
示例#5
0
        private FinanceRequestOperationStatus ValidateForCurrentUser(FinanceRequest request)
        {
            if (request == null)
            {
                return(new FinanceRequestOperationStatus(FinanceRequestOperationStatus.RequestNotFound));
            }

            if (request.Author.Id != _userService.GetCurrentUser().Id)
            {
                return(new FinanceRequestOperationStatus(FinanceRequestOperationStatus.Unauthorized));
            }

            return(new FinanceRequestOperationStatus(FinanceRequestOperationStatus.Success));
        }
        public void GenerateCorrectNumberTest()
        {
            var provider       = new RequestNumberProvider();
            var financeRequest = new FinanceRequest
            {
                Id           = null,
                Purpose      = "TEST PURPOSE",
                Amount       = 5000000,
                MonthCount   = 36,
                InterestRate = 15
            };

            var dateString = DateTime.Now.ToString("ddMMyyyyhhmmss");
            var number     = provider.Generate(financeRequest);

            Assert.Equal($"KZ{dateString}{financeRequest.GetHashCode()}", number);
        }
示例#7
0
 public string Generate(FinanceRequest request)
 {
     return($"KZ{DateTime.Now:ddMMyyyyhhmmss}{request.GetHashCode()}");
 }