Esempio n. 1
0
        public void AddSale(SaleDto saleDto)
        {
            lock (_objLock)
            {
                var manager = new DAL.Models.Manager()
                {
                    SecondName = saleDto.Manager
                };
                var client = new DAL.Models.Client()
                {
                    FullName = saleDto.Client
                };
                var product = new DAL.Models.Product()
                {
                    Name = saleDto.Product
                };
                var managerId = _unitOfWork.Managers.GetId(manager);
                if (managerId == null)
                {
                    _unitOfWork.Managers.Create(manager);
                    _unitOfWork.Save();
                    managerId = _unitOfWork.Managers.GetId(manager);
                }

                var clientId = _unitOfWork.Clients.GetId(client);
                if (clientId == null)
                {
                    _unitOfWork.Clients.Create(client);
                    _unitOfWork.Save();
                    clientId = _unitOfWork.Clients.GetId(client);
                }

                var productId = _unitOfWork.Products.GetId(product);
                if (productId == null)
                {
                    _unitOfWork.Products.Create(product);
                    _unitOfWork.Save();
                    productId = _unitOfWork.Products.GetId(product);
                }
                var sale = new DAL.Models.SaleInfo()
                {
                    ClientId  = (int)clientId,
                    ManagerId = (int)managerId,
                    ProductId = (int)productId,
                    Date      = saleDto.Date,
                    Amount    = saleDto.Amount
                };
                _unitOfWork.SalesInfo.Create(sale);
                _unitOfWork.Save();
            }
        }
Esempio n. 2
0
        public void AddToDatabase(InfoList infoList)
        {
            lock (obj)
            {
                var newManager = new DAL.Models.Manager
                {
                    ManagerName = infoList.ManagerName
                };
                var manager = _managerRepository.GetEntity(newManager);
                if (manager == null)
                {
                    _managerRepository.Add(newManager);
                    _managerRepository.SaveChanges();
                    manager = _managerRepository.GetEntity(newManager);
                }

                var newClient = new DAL.Models.Client
                {
                    ClientName = infoList.ClientName
                };
                _clientRepository.Add(newClient);
                _clientRepository.SaveChanges();
                var client = _clientRepository.GetEntity(newClient);

                var newProduct = new DAL.Models.Product
                {
                    ProductName = infoList.ProductName, ProductCost = infoList.ProductCost
                };
                _productRepository.Add(newProduct);
                _productRepository.SaveChanges();
                var product = _productRepository.GetEntity(newProduct);

                var saleInfo = new DAL.Models.SaleInfo
                {
                    SaleDate   = infoList.SaleDate,
                    ID_Manager = manager.ID_Manager,
                    ID_Client  = client.ID_Client,
                    ID_Product = product.ID_Product
                };
                _saleInfoRepository.Add(saleInfo);
                _saleInfoRepository.SaveChanges();
            }
        }
        public ActionResult AddSaleInfo(SaleInfoModel saleInfo)
        {
            List<string> _errList = new List<string>();
            bool _success = false;

            if (ModelState.IsValid)
            {
                try
                {

                    //var tt = Mapper.Map<SaleInfo>(saleInfo);
                    var sin = new SaleInfo(saleInfo.Date,
                        new FileInformation(saleInfo.FileName, saleInfo.Date, new Manager(saleInfo.ManagerName)),
                        new Client(saleInfo.ClientFirstName, saleInfo.ClientSecondName),
                        new Product(saleInfo.ProductName), saleInfo.Cost);

                    new SaleInfoRepository().Add(sin);
                    _success = true;
                }
                catch (DalException e)
                {
                    _errList.Add(e.Message);
                }
                catch (Exception x)
                {
                    _errList.Add("DataBase Error");
                }
            }
            else
            {
                _errList = GetModelErrors();
            }

            return Json(new
            {
                success = _success,
                error = _errList
            });
        }