Beispiel #1
0
        public void Fail_Return_Success()
        {
            //Setup
            string ApiVersion = "V1";
            int    StatusCode = 200;
            string Message    = "OK";

            StockTransferNoteViewModel viewModel         = new StockTransferNoteViewModel();
            ResultFormatter            formatter         = new ResultFormatter(ApiVersion, StatusCode, Message);
            ValidationContext          validationContext = new ValidationContext(viewModel);

            var errorData = new
            {
                WarningError = "Format Not Match"
            };

            string error     = JsonConvert.SerializeObject(errorData);
            var    exception = new ServiceValidationExeption(validationContext, new List <ValidationResult>()
            {
                new ValidationResult(error, new List <string>()
                {
                    "WarningError"
                })
            });

            //Act
            var result = formatter.Fail(exception);

            //Assert
            Assert.True(0 < result.Count());
        }
        public StockTransferNote MapToModel(StockTransferNoteViewModel viewModel)
        {
            StockTransferNote model = new StockTransferNote();

            PropertyCopier <StockTransferNoteViewModel, StockTransferNote> .Copy(viewModel, model);

            model.SourceStorageId   = viewModel.SourceStorage._id;
            model.SourceStorageCode = viewModel.SourceStorage.code;
            model.SourceStorageName = viewModel.SourceStorage.name;
            model.TargetStorageId   = viewModel.TargetStorage._id;
            model.TargetStorageCode = viewModel.TargetStorage.code;
            model.TargetStorageName = viewModel.TargetStorage.name;

            model.StockTransferNoteItems = new List <StockTransferNote_Item>();
            foreach (StockTransferNote_ItemViewModel stn in viewModel.StockTransferNoteItems)
            {
                StockTransferNote_Item stockTransferNoteItem = new StockTransferNote_Item();
                PropertyCopier <StockTransferNote_ItemViewModel, StockTransferNote_Item> .Copy(stn, stockTransferNoteItem);

                stockTransferNoteItem.ProductId          = stn.Summary.productId;
                stockTransferNoteItem.ProductCode        = stn.Summary.productCode;
                stockTransferNoteItem.ProductName        = stn.Summary.productName;
                stockTransferNoteItem.UomId              = stn.Summary.uomId;
                stockTransferNoteItem.UomUnit            = stn.Summary.uom;
                stockTransferNoteItem.StockQuantity      = stn.Summary.quantity;
                stockTransferNoteItem.TransferedQuantity = stn.TransferedQuantity != null ? (double)stn.TransferedQuantity: 0;

                model.StockTransferNoteItems.Add(stockTransferNoteItem);
            }

            return(model);
        }
        public void Should_Success_ValidateNullDetailVM()
        {
            InventorySummaryRepository inventorySummaryRepository = new InventorySummaryRepository(serviceProvider.Object, inventoryDbContext);

            serviceProvider.Setup(s => s.GetService(typeof(IInventorySummaryRepository)))
            .Returns(inventorySummaryRepository);

            InventoryMovementRepository inventoryMovementRepository = new InventoryMovementRepository(serviceProvider.Object, inventoryDbContext);

            serviceProvider.Setup(s => s.GetService(typeof(IInventoryMovementRepository)))
            .Returns(inventoryMovementRepository);

            InventoryDocumentRepository inventoryDocumentRepository = new InventoryDocumentRepository(serviceProvider.Object, inventoryDbContext);

            serviceProvider.Setup(s => s.GetService(typeof(IInventoryDocumentRepository)))
            .Returns(inventoryDocumentRepository);

            StockTransferNoteRepository repository = new StockTransferNoteRepository(serviceProvider.Object, inventoryDbContext);
            var vm = new StockTransferNoteViewModel()
            {
                StockTransferNoteItems = new List <StockTransferNoteItemViewModel>()
                {
                    new StockTransferNoteItemViewModel()
                }
            };
            ValidationContext validationContext = new ValidationContext(vm, serviceProvider.Object, null);
            var response = vm.Validate(validationContext);

            Assert.True(response.Count() > 0);
        }
Beispiel #4
0
        public void Should_Success_ValidateNullDetailVM()
        {
            var serviceProvider = GetServiceProvider();
            InventorySummaryService inventorySummaryService = new InventorySummaryService(serviceProvider.Object, _dbContext(GetCurrentMethod()));

            serviceProvider.Setup(s => s.GetService(typeof(IInventorySummaryService)))
            .Returns(inventorySummaryService);

            InventoryMovementService inventoryMovementService = new InventoryMovementService(serviceProvider.Object, _dbContext(GetCurrentMethod()));

            serviceProvider.Setup(s => s.GetService(typeof(IInventoryMovementService)))
            .Returns(inventoryMovementService);

            InventoryDocumentService inventoryDocumentFacade = new InventoryDocumentService(serviceProvider.Object, _dbContext(GetCurrentMethod()));

            serviceProvider.Setup(s => s.GetService(typeof(IInventoryDocumentService)))
            .Returns(inventoryDocumentFacade);
            NewStockTransferNoteService service = new NewStockTransferNoteService(serviceProvider.Object, _dbContext(GetCurrentMethod()));
            var vm = new StockTransferNoteViewModel()
            {
                StockTransferNoteItems = new List <StockTransferNote_ItemViewModel>()
                {
                    new StockTransferNote_ItemViewModel()
                }
            };
            ValidationContext validationContext = new ValidationContext(vm, serviceProvider.Object, null);
            var response = vm.Validate(validationContext);

            Assert.True(response.Count() > 0);
        }
        public void Validate_Throws_ServiceValidationExeption()
        {
            Mock <IServiceProvider>    serviceProvider = new Mock <IServiceProvider>();
            StockTransferNoteViewModel viewModel       = new StockTransferNoteViewModel();

            ValidateService service = new ValidateService(serviceProvider.Object);

            Assert.Throws <ServiceValidationExeption>(() => service.Validate(viewModel));
        }
Beispiel #6
0
        public void Validate_When_TransferedQuantity_is_Greater_Than_Stock()
        {
            //Setup
            var serviceProvider = GetServiceProvider();
            InventorySummaryService inventorySummaryService = new InventorySummaryService(serviceProvider.Object, _dbContext(GetCurrentMethod()));

            serviceProvider.Setup(s => s.GetService(typeof(IInventorySummaryService)))
            .Returns(inventorySummaryService);

            InventoryMovementService inventoryMovementService = new InventoryMovementService(serviceProvider.Object, _dbContext(GetCurrentMethod()));

            serviceProvider.Setup(s => s.GetService(typeof(IInventoryMovementService)))
            .Returns(inventoryMovementService);

            InventoryDocumentService inventoryDocumentFacade = new InventoryDocumentService(serviceProvider.Object, _dbContext(GetCurrentMethod()));

            serviceProvider.Setup(s => s.GetService(typeof(IInventoryDocumentService)))
            .Returns(inventoryDocumentFacade);
            NewStockTransferNoteService service = new NewStockTransferNoteService(serviceProvider.Object, _dbContext(GetCurrentMethod()));

            var vm = new StockTransferNoteViewModel()
            {
                StockTransferNoteItems = new List <StockTransferNote_ItemViewModel>()
                {
                    new StockTransferNote_ItemViewModel()
                    {
                        Summary = new InventorySummaryViewModel()
                        {
                            productId   = 1,
                            productName = "productName",
                            quantity    = 1
                        },
                        TransferedQuantity = 2
                    },
                    new StockTransferNote_ItemViewModel()
                    {
                        Summary = new InventorySummaryViewModel()
                        {
                            productId   = 1,
                            productName = "productName"
                        },
                    }
                }
            };
            ValidationContext validationContext = new ValidationContext(vm, serviceProvider.Object, null);

            //Act
            var response = vm.Validate(validationContext);

            //Assert
            Assert.True(response.Count() > 0);
        }
Beispiel #7
0
        public StockTransferNoteViewModel GetEmptyData()
        {
            StockTransferNoteViewModel Data = new StockTransferNoteViewModel();

            Data.ReferenceNo            = string.Empty;
            Data.ReferenceType          = string.Empty;
            Data.SourceStorage          = new StorageViewModel();
            Data.TargetStorage          = new StorageViewModel();
            Data.StockTransferNoteItems = new List <StockTransferNote_ItemViewModel> {
                new StockTransferNote_ItemViewModel()
            };

            return(Data);
        }
        public StockTransferNoteViewModel MapToViewModel(StockTransferNote model)
        {
            StockTransferNoteViewModel viewModel = new StockTransferNoteViewModel();

            PropertyCopier <StockTransferNote, StockTransferNoteViewModel> .Copy(model, viewModel);

            StorageViewModel SourceStorage = new StorageViewModel()
            {
                _id  = model.SourceStorageId,
                code = model.SourceStorageCode,
                name = model.SourceStorageName
            };

            StorageViewModel TargetStorage = new StorageViewModel()
            {
                _id  = model.TargetStorageId,
                code = model.TargetStorageCode,
                name = model.TargetStorageName
            };

            viewModel.SourceStorage = SourceStorage;
            viewModel.TargetStorage = TargetStorage;

            viewModel.StockTransferNoteItems = new List <StockTransferNote_ItemViewModel>();
            if (model.StockTransferNoteItems != null)
            {
                foreach (StockTransferNote_Item stn in model.StockTransferNoteItems)
                {
                    StockTransferNote_ItemViewModel stockTransferNoteItemViewModel = new StockTransferNote_ItemViewModel();
                    PropertyCopier <StockTransferNote_Item, StockTransferNote_ItemViewModel> .Copy(stn, stockTransferNoteItemViewModel);

                    InventorySummaryViewModel Summary = new InventorySummaryViewModel()
                    {
                        productId   = stn.ProductId,
                        productCode = stn.ProductCode,
                        productName = stn.ProductName,
                        quantity    = stn.StockQuantity,
                        uomId       = stn.UomId,
                        uom         = stn.UomUnit
                    };

                    stockTransferNoteItemViewModel.Summary = Summary;

                    viewModel.StockTransferNoteItems.Add(stockTransferNoteItemViewModel);
                }
            }

            return(viewModel);
        }
        public StockTransferNoteViewModel MapToViewModel(StockTransferNote model)
        {
            StockTransferNoteViewModel viewModel = new StockTransferNoteViewModel();

            PropertyCopier <StockTransferNote, StockTransferNoteViewModel> .Copy(model, viewModel);

            CodeNameViewModel SourceStorage = new CodeNameViewModel()
            {
                Id   = model.SourceStorageId,
                Code = model.SourceStorageCode,
                Name = model.SourceStorageName
            };

            CodeNameViewModel TargetStorage = new CodeNameViewModel()
            {
                Id   = model.TargetStorageId,
                Code = model.TargetStorageCode,
                Name = model.TargetStorageName
            };

            viewModel.SourceStorage = SourceStorage;
            viewModel.TargetStorage = TargetStorage;

            viewModel.StockTransferNoteItems = new List <StockTransferNoteItemViewModel>();
            if (model.StockTransferNoteItems != null)
            {
                foreach (StockTransferNoteItem stn in model.StockTransferNoteItems)
                {
                    StockTransferNoteItemViewModel stockTransferNoteItemViewModel = new StockTransferNoteItemViewModel();
                    PropertyCopier <StockTransferNoteItem, StockTransferNoteItemViewModel> .Copy(stn, stockTransferNoteItemViewModel);

                    InventorySummaryViewModel Summary = new InventorySummaryViewModel()
                    {
                        ProductId   = int.TryParse(stn.ProductId, out int prdId) ? prdId : 0,
                        ProductCode = stn.ProductCode,
                        ProductName = stn.ProductName,
                        Quantity    = stn.StockQuantity,
                        UomId       = int.TryParse(stn.UomId, out int unitId) ? unitId : 0,
                        Uom         = stn.UomUnit
                    };

                    stockTransferNoteItemViewModel.Summary = Summary;

                    viewModel.StockTransferNoteItems.Add(stockTransferNoteItemViewModel);
                }
            }

            return(viewModel);
        }
        public StockTransferNoteViewModel GetEmptyData()
        {
            StockTransferNoteViewModel data = new StockTransferNoteViewModel
            {
                ReferenceNo            = string.Empty,
                ReferenceType          = string.Empty,
                SourceStorage          = new CodeNameViewModel(),
                TargetStorage          = new CodeNameViewModel(),
                StockTransferNoteItems = new List <StockTransferNoteItemViewModel> {
                    new StockTransferNoteItemViewModel()
                }
            };

            return(data);
        }
        public void CreateInventoryDocument(StockTransferNote Model, string Type, string Context)
        {
            StockTransferNoteViewModel ViewModel = MapToViewModel(Model);

            string inventoryDocumentURI = "inventory/inventory-documents";

            HttpClient httpClient = new HttpClient();

            httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", Token);

            /* Create Inventory Document */
            List <InventoryDocumentItemViewModel> inventoryDocumentItems = new List <InventoryDocumentItemViewModel>();

            foreach (StockTransferNote_ItemViewModel stni in ViewModel.StockTransferNoteItems)
            {
                InventoryDocumentItemViewModel inventoryDocumentItem = new InventoryDocumentItemViewModel
                {
                    productId   = stni.Summary.productId,
                    productCode = stni.Summary.productCode,
                    productName = stni.Summary.productName,
                    quantity    = stni.TransferedQuantity != null ? (double)stni.TransferedQuantity : 0,
                    uomId       = stni.Summary.uomId,
                    uom         = stni.Summary.uom
                };

                inventoryDocumentItems.Add(inventoryDocumentItem);
            }

            InventoryDocumentViewModel inventoryDocument = new InventoryDocumentViewModel
            {
                date          = DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ss.fffZ"),
                referenceNo   = Model.ReferenceNo,
                referenceType = Model.ReferenceType,
                type          = Type,
                storageId     = string.Equals(Context.ToUpper(), "CREATE") || string.Equals(Context.ToUpper(), "DELETE-SOURCE") ? Model.SourceStorageId : Model.TargetStorageId,
                storageCode   = string.Equals(Context.ToUpper(), "CREATE") || string.Equals(Context.ToUpper(), "DELETE-SOURCE") ? Model.SourceStorageCode : Model.TargetStorageCode,
                storageName   = string.Equals(Context.ToUpper(), "CREATE") || string.Equals(Context.ToUpper(), "DELETE-SOURCE") ? Model.SourceStorageName : Model.TargetStorageName,
                items         = inventoryDocumentItems
            };

            var response = httpClient.PostAsync($"{APIEndpoint.Inventory}{inventoryDocumentURI}", new StringContent(JsonConvert.SerializeObject(inventoryDocument).ToString(), Encoding.UTF8, General.JsonMediaType)).Result;

            response.EnsureSuccessStatusCode();
        }
        public async Task <int> CreateInventoryDocument(StockTransferNote Model, string Type, string Context)
        {
            StockTransferNoteViewModel ViewModel = MapToViewModel(Model);

            IHttpServiceRepository httpClient = (IHttpServiceRepository)this.ServiceProvider.GetService(typeof(IHttpServiceRepository));

            /* Create Inventory Document */
            List <InventoryDocumentItem> inventoryDocumentItems = new List <InventoryDocumentItem>();

            foreach (StockTransferNoteItemViewModel stni in ViewModel.StockTransferNoteItems)
            {
                InventoryDocumentItem inventoryDocumentItem = new InventoryDocumentItem
                {
                    ProductId   = stni.Summary.ProductId,
                    ProductCode = stni.Summary.ProductCode,
                    ProductName = stni.Summary.ProductName,
                    Quantity    = stni.TransferedQuantity != null ? (double)stni.TransferedQuantity : 0,
                    UomId       = stni.Summary.UomId,
                    UomUnit     = stni.Summary.Uom
                };

                inventoryDocumentItems.Add(inventoryDocumentItem);
            }

            InventoryDocument inventoryDocument = new InventoryDocument
            {
                Date          = DateTimeOffset.UtcNow,
                ReferenceNo   = Model.ReferenceNo,
                ReferenceType = Model.ReferenceType,
                Type          = Type,
                StorageId     = string.Equals(Context.ToUpper(), "CREATE") || string.Equals(Context.ToUpper(), "DELETE-SOURCE") ? int.Parse(Model.SourceStorageId) : int.Parse(Model.TargetStorageId),
                StorageCode   = string.Equals(Context.ToUpper(), "CREATE") || string.Equals(Context.ToUpper(), "DELETE-SOURCE") ? Model.SourceStorageCode : Model.TargetStorageCode,
                StorageName   = string.Equals(Context.ToUpper(), "CREATE") || string.Equals(Context.ToUpper(), "DELETE-SOURCE") ? Model.SourceStorageName : Model.TargetStorageName,
                Items         = inventoryDocumentItems
            };

            var inventoryDocumentFacade = ServiceProvider.GetService <IInventoryDocumentRepository>();

            return(await inventoryDocumentFacade.Create(inventoryDocument));
        }
Beispiel #13
0
        public void Fail_Throws_Exception()
        {
            //Setup
            string ApiVersion = "V1";
            int    StatusCode = 200;
            string Message    = "OK";

            StockTransferNoteViewModel viewModel         = new StockTransferNoteViewModel();
            ResultFormatter            formatter         = new ResultFormatter(ApiVersion, StatusCode, Message);
            ValidationContext          validationContext = new ValidationContext(viewModel);
            var exception = new ServiceValidationExeption(validationContext, new List <ValidationResult>()
            {
                new ValidationResult("errorMessaage", new List <string>()
                {
                    "WarningError"
                })
            });

            //Act
            var result = formatter.Fail(exception);

            //Assert
            Assert.True(0 < result.Count());
        }