Esempio n. 1
0
        public void EditProductGoodsUseCaseEqualTest()
        {
            EditProductGoodsRequest editProductGoodsRequest = new EditProductGoodsRequest
                                                                  (id, unit, tareChange, count, provider, datetime, category, class_, expDate, arrivedGoods,
                                                                  allPurchasePrice, allSalePrice, department, seller, returned, returnedDate, writenOff);

            IRepositoryFactory       repositoryFactory        = new RepositoryFactory(new DBContext());
            IActivityFactory         activityFactory          = new ActivityFactory(repositoryFactory, new ValidationRuleFactory());
            IUseCaseFactory          useCaseFactory           = new UseCaseFactory(activityFactory);
            EditProductGoodsResponse editProductGoodsResponse = useCaseFactory.Create <IUseCase <EditProductGoodsRequest, EditProductGoodsResponse> >().Execute(editProductGoodsRequest);

            Assert.AreEqual(editProductGoodsResponse.Products[0].Unit, unit);
            Assert.AreEqual(editProductGoodsResponse.Products[0].Returned, returned);
            Assert.AreEqual(editProductGoodsResponse.Products[0].ArrivedGoods.Id, arrivedGoods.Id);
            Assert.AreEqual(editProductGoodsResponse.Products[0].Count, int.Parse(count));
        }
Esempio n. 2
0
        public void EditProductGoodsUseCaseNotEqualTest()
        {
            Exception exception = null;

            try
            {
                IRepositoryFactory      repositoryFactory       = new RepositoryFactory(new DBContext());
                IActivityFactory        activityFactory         = new ActivityFactory(repositoryFactory, new ValidationRuleFactory());
                IUseCaseFactory         useCaseFactory          = new UseCaseFactory(activityFactory);
                EditProductGoodsRequest editProductGoodsRequest = new EditProductGoodsRequest
                                                                      (id, unit, tareChange, "", provider, datetime, category, class_, expDate, arrivedGoods,
                                                                      allPurchasePrice, allSalePrice, department, seller, returned, returnedDate, writenOff);
                EditProductGoodsResponse editProductGoodsResponse = useCaseFactory.Create <IUseCase <EditProductGoodsRequest, EditProductGoodsResponse> >().Execute(editProductGoodsRequest);
            }
            catch (Exception ex)
            {
                exception = ex;
            }

            Assert.AreEqual(exception.Message, "Count must have digits only");
        }
        public async Task <OperationStatusInfo> EditProductGoods(object editedProduct, object editedArrivedGoods)
        {
            return(await Task.Run(() =>
            {
                Dictionary <Type, object> collection = new Dictionary <Type, object>();
                OperationStatusInfo operationStatusInfo = new OperationStatusInfo(operationStatus: OperationStatus.Done);

                string attachedProductObjectText = editedProduct.ToString();
                string attachedArrivedGoodsObjectText = editedArrivedGoods.ToString();
                Product newProduct = JsonConvert.DeserializeObject <Product>(attachedProductObjectText);
                ArrivedGoods newArrivedGoods = JsonConvert.DeserializeObject <ArrivedGoods>(attachedArrivedGoodsObjectText);
                EditProductGoodsRequest editProductGoodsRequest = new EditProductGoodsRequest(newProduct.Id, newProduct.Unit, newProduct.TareChange,
                                                                                              newArrivedGoods.Count.ToString(), newArrivedGoods.Provider, newArrivedGoods.DateTime.ToString(), newProduct.Category,
                                                                                              newProduct.Class, newProduct.ExpirationDate.ToString(), newArrivedGoods, newArrivedGoods.AllPurchasePrice.ToString(),
                                                                                              newArrivedGoods.AllSalesPrice.ToString(), newArrivedGoods.Department, newArrivedGoods.Seller,
                                                                                              newProduct.Returned, newProduct.ReturnedDate.ToString(), newProduct.WritenOff);

                try
                {
                    EditProductGoodsResponse editProductGoodsResponse = hubEnvironment.UseCaseFactory
                                                                        .Create <IUseCase <EditProductGoodsRequest, EditProductGoodsResponse> >()
                                                                        .Execute(editProductGoodsRequest);
                    collection.Add(typeof(List <ArrivedGoods>), editProductGoodsResponse.ArrivedGoods);
                    collection.Add(typeof(List <Product>), editProductGoodsResponse.Products);
                    operationStatusInfo.AttachedObject = collection;
                    operationStatusInfo.AttachedInfo = "Product is updated!";
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                    operationStatusInfo.OperationStatus = OperationStatus.Cancelled;
                    operationStatusInfo.AttachedInfo = ex.Message;
                }

                return operationStatusInfo;
            }));
        }