public async Task <PurchasingDocumentExpedition> GetCashierTestData()
        {
            PurchasingDocumentAcceptanceViewModel vModel = GetCashierNewData();
            await Task.Run(() => Facade.PurchasingDocumentAcceptance(vModel, "Unit Test"));

            return(await Facade.ReadModelById(purchasingDocumentExpedition.Id));
        }
        public async Task <ActionResult> Post([FromBody] PurchasingDocumentAcceptanceViewModel viewModel)
        {
            this.identityService.Token    = Request.Headers["Authorization"].First().Replace("Bearer ", "");
            this.identityService.Username = User.Claims.Single(p => p.Type.Equals("username")).Value;

            ValidateService validateService = (ValidateService)purchasingDocumentExpeditionFacade.serviceProvider.GetService(typeof(ValidateService));

            try
            {
                validateService.Validate(viewModel);

                await purchasingDocumentExpeditionFacade.PurchasingDocumentAcceptance(viewModel, this.identityService.Username);

                return(NoContent());
            }
            catch (ServiceValidationExeption e)
            {
                Dictionary <string, object> Result =
                    new ResultFormatter(ApiVersion, General.BAD_REQUEST_STATUS_CODE, General.BAD_REQUEST_MESSAGE)
                    .Fail(e);
                return(BadRequest(Result));
            }
            catch (Exception e)
            {
                Dictionary <string, object> Result =
                    new ResultFormatter(ApiVersion, General.INTERNAL_ERROR_STATUS_CODE, e.Message)
                    .Fail();
                return(StatusCode(General.INTERNAL_ERROR_STATUS_CODE, Result));
            }
        }
        public PurchasingDocumentAcceptanceViewModel GetVerificationNewData()
        {
            PurchasingDocumentAcceptanceViewModel TestData = GetNewData();

            TestData.Role = "VERIFICATION";
            return(TestData);
        }
        public PurchasingDocumentAcceptanceViewModel GetCashierNewData()
        {
            PurchasingDocumentAcceptanceViewModel TestData = GetNewData();

            TestData.Role = "CASHIER";
            return(TestData);
        }
Exemplo n.º 5
0
        private async void Should_Success_Accept_Document_With_Cashier_Role()
        {
            PurchasingDocumentAcceptanceViewModel vModel = DataUtil.GetCashierNewData();
            int AffectedRows = await Facade.PurchasingDocumentAcceptance(vModel, "Unit Test");

            Assert.True(AffectedRows > 0);
        }
        public async Task <PurchasingDocumentAcceptanceViewModel> GetCashierNewData()
        {
            PurchasingDocumentAcceptanceViewModel TestData = await GetNewData();

            TestData.Role = "CASHIER";
            return(TestData);
        }
        public async Task Should_Success_Create_Data()
        {
            PurchasingDocumentAcceptanceViewModel ViewModel = await DataUtil.GetVerificationNewData();

            var response = await this.Client.PostAsync(URI, new StringContent(JsonConvert.SerializeObject(ViewModel).ToString(), Encoding.UTF8, MediaType));

            Assert.Equal(HttpStatusCode.NoContent, response.StatusCode);
        }
        private async Task Should_Success_Accept_Document_With_Verification_Role()
        {
            PurchasingDocumentAcceptanceViewModel vModel = await DataUtil.GetVerificationNewData();

            int AffectedRows = await Facade.PurchasingDocumentAcceptance(vModel, "Unit Test");

            Assert.True(AffectedRows > 0);
        }
        public PurchasingDocumentAcceptanceViewModel GetNewData()
        {
            purchasingDocumentExpedition = Task.Run(() => this.sendToVerificationDataUtil.GetTestData()).Result;

            PurchasingDocumentAcceptanceItem item = new PurchasingDocumentAcceptanceItem()
            {
                Id = purchasingDocumentExpedition.Id,
                UnitPaymentOrderNo = purchasingDocumentExpedition.UnitPaymentOrderNo
            };

            PurchasingDocumentAcceptanceViewModel TestData = new PurchasingDocumentAcceptanceViewModel()
            {
                PurchasingDocumentExpedition = new List <PurchasingDocumentAcceptanceItem>()
                {
                    item
                }
            };

            return(TestData);
        }
Exemplo n.º 10
0
        public async Task <int> PurchasingDocumentAcceptance(PurchasingDocumentAcceptanceViewModel data, string username)
        {
            int Updated = 0;

            using (var transaction = this.dbContext.Database.BeginTransaction())
            {
                try
                {
                    List <string> unitPaymentOrders = new List <string>();

                    #region Verification
                    if (data.Role.Equals("VERIFICATION"))
                    {
                        foreach (PurchasingDocumentAcceptanceItem item in data.PurchasingDocumentExpedition)
                        {
                            unitPaymentOrders.Add(item.UnitPaymentOrderNo);

                            PurchasingDocumentExpedition model = new PurchasingDocumentExpedition
                            {
                                Id = item.Id,
                                VerificationDivisionBy   = username,
                                VerificationDivisionDate = DateTimeOffset.UtcNow,
                                Position = ExpeditionPosition.VERIFICATION_DIVISION,
                            };

                            EntityExtension.FlagForUpdate(model, username, "Facade");
                            //dbContext.Attach(model);
                            dbContext.Entry(model).Property(x => x.VerificationDivisionBy).IsModified   = true;
                            dbContext.Entry(model).Property(x => x.VerificationDivisionDate).IsModified = true;
                            dbContext.Entry(model).Property(x => x.Position).IsModified          = true;
                            dbContext.Entry(model).Property(x => x.LastModifiedAgent).IsModified = true;
                            dbContext.Entry(model).Property(x => x.LastModifiedBy).IsModified    = true;
                            dbContext.Entry(model).Property(x => x.LastModifiedUtc).IsModified   = true;
                        }

                        Updated = await dbContext.SaveChangesAsync();

                        UpdateUnitPaymentOrderPosition(unitPaymentOrders, ExpeditionPosition.VERIFICATION_DIVISION, username);
                    }
                    #endregion Verification
                    #region Cashier
                    else if (data.Role.Equals("CASHIER"))
                    {
                        foreach (PurchasingDocumentAcceptanceItem item in data.PurchasingDocumentExpedition)
                        {
                            unitPaymentOrders.Add(item.UnitPaymentOrderNo);

                            PurchasingDocumentExpedition model = new PurchasingDocumentExpedition
                            {
                                Id = item.Id,
                                CashierDivisionBy   = username,
                                CashierDivisionDate = DateTimeOffset.UtcNow,
                                Position            = ExpeditionPosition.CASHIER_DIVISION,
                            };

                            EntityExtension.FlagForUpdate(model, username, "Facade");
                            //dbContext.Attach(model);
                            dbContext.Entry(model).Property(x => x.CashierDivisionBy).IsModified   = true;
                            dbContext.Entry(model).Property(x => x.CashierDivisionDate).IsModified = true;
                            dbContext.Entry(model).Property(x => x.Position).IsModified            = true;
                            dbContext.Entry(model).Property(x => x.LastModifiedAgent).IsModified   = true;
                            dbContext.Entry(model).Property(x => x.LastModifiedBy).IsModified      = true;
                            dbContext.Entry(model).Property(x => x.LastModifiedUtc).IsModified     = true;
                        }

                        Updated = await dbContext.SaveChangesAsync();

                        UpdateUnitPaymentOrderPosition(unitPaymentOrders, ExpeditionPosition.CASHIER_DIVISION, username);
                    }
                    #endregion Cashier
                    #region Accounting
                    else if (data.Role.Equals("ACCOUNTING"))
                    {
                        foreach (PurchasingDocumentAcceptanceItem item in data.PurchasingDocumentExpedition)
                        {
                            unitPaymentOrders.Add(item.UnitPaymentOrderNo);

                            PurchasingDocumentExpedition model = new PurchasingDocumentExpedition
                            {
                                Id = item.Id,
                                AccountingDivisionBy   = username,
                                AccountingDivisionDate = DateTimeOffset.UtcNow,
                                Position = ExpeditionPosition.FINANCE_DIVISION,
                            };

                            EntityExtension.FlagForUpdate(model, username, "Facade");
                            //dbContext.Attach(model);
                            dbContext.Entry(model).Property(x => x.AccountingDivisionBy).IsModified   = true;
                            dbContext.Entry(model).Property(x => x.AccountingDivisionDate).IsModified = true;
                            dbContext.Entry(model).Property(x => x.Position).IsModified          = true;
                            dbContext.Entry(model).Property(x => x.LastModifiedAgent).IsModified = true;
                            dbContext.Entry(model).Property(x => x.LastModifiedBy).IsModified    = true;
                            dbContext.Entry(model).Property(x => x.LastModifiedUtc).IsModified   = true;
                        }

                        Updated = await dbContext.SaveChangesAsync();

                        UpdateUnitPaymentOrderPosition(unitPaymentOrders, ExpeditionPosition.FINANCE_DIVISION, username);
                    }
                    #endregion Accounting

                    /*
                     #region Finance
                     * else if (data.Role.Equals("FINANCE"))
                     * {
                     *  foreach (PurchasingDocumentAcceptanceItem item in data.PurchasingDocumentExpedition)
                     *  {
                     *      unitPaymentOrders.Add(item.UnitPaymentOrderNo);
                     *
                     *      PurchasingDocumentExpedition model = new PurchasingDocumentExpedition
                     *      {
                     *          Id = item.Id,
                     *          FinanceDivisionBy = username,
                     *          FinanceDivisionDate = DateTimeOffset.UtcNow,
                     *          Position = ExpeditionPosition.FINANCE_DIVISION,
                     *      };
                     *
                     *      EntityExtension.FlagForUpdate(model, username, "Facade");
                     *      dbContext.Attach(model);
                     *      dbContext.Entry(model).Property(x => x.FinanceDivisionBy).IsModified = true;
                     *      dbContext.Entry(model).Property(x => x.FinanceDivisionDate).IsModified = true;
                     *      dbContext.Entry(model).Property(x => x.Position).IsModified = true;
                     *      dbContext.Entry(model).Property(x => x.LastModifiedAgent).IsModified = true;
                     *      dbContext.Entry(model).Property(x => x.LastModifiedBy).IsModified = true;
                     *      dbContext.Entry(model).Property(x => x.LastModifiedUtc).IsModified = true;
                     *  }
                     *
                     *  Updated = await dbContext.SaveChangesAsync();
                     *  UpdateUnitPaymentOrderPosition(unitPaymentOrders, ExpeditionPosition.FINANCE_DIVISION);
                     * }
                     #endregion Finance
                     */

                    transaction.Commit();
                }
                catch (Exception e)
                {
                    transaction.Rollback();
                    throw new Exception(e.Message);
                }
            }

            return(Updated);
        }