예제 #1
0
        private ICollection <SaleDTO> Parse(string fullPath)
        {
            ICollection <SaleDTO> sales = new List <SaleDTO>();

            string fileName = fullPath.Substring((fullPath.LastIndexOf(@"\") + 1));
            string manager  = fileName.Substring(0, fileName.LastIndexOf("_"));

            using (TextReader reader = File.OpenText(fullPath))
            {
                while (reader.Peek() > -1)
                {
                    string readedLine = reader.ReadLine();

                    var splitSaleInfo = readedLine.Split(',');

                    try
                    {
                        SaleDTO s = new SaleDTO()
                        {
                            Date = DateTime.Parse(splitSaleInfo[0]), Manager = manager, Client = splitSaleInfo[1], Product = splitSaleInfo[2], Amount = double.Parse(splitSaleInfo[3])
                        };
                        sales.Add(s);
                    }
                    catch (Exception exception)
                    {
                        Console.WriteLine("Can't parse, because: {0}", exception.ToString());
                    }
                }
            }
            return(sales);
        }
예제 #2
0
        public void AddSaleInfo(SaleDTO saleDto)
        {
            lock (_locker)
            {
                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 = _repositories.Managers.GetId(manager);
                if (managerId == null)
                {
                    _repositories.Managers.Add(manager);
                    _repositories.Save();
                    managerId = _repositories.Managers.GetId(manager);
                }

                var clientId = _repositories.Clients.GetId(client);
                if (clientId == null)
                {
                    _repositories.Clients.Add(client);
                    _repositories.Save();
                    clientId = _repositories.Clients.GetId(client);
                }

                var productId = _repositories.Products.GetId(product);
                if (productId == null)
                {
                    _repositories.Products.Add(product);
                    _repositories.Save();
                    productId = _repositories.Products.GetId(product);
                }

                var saleInfo = new DAL.Models.SaleInfo()
                {
                    Date      = saleDto.Date,
                    ManagerId = (int)managerId,
                    ClientId  = (int)clientId,
                    ProductId = (int)productId,
                    Amount    = saleDto.Amount
                };

                _repositories.SalesInfo.Add(saleInfo);
                _repositories.Save();
            }
        }
예제 #3
0
        public void UpdateSaleInfo(SaleDTO saleDto)
        {
            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 = _repositories.Managers.GetId(manager);

            if (managerId == null)
            {
                _repositories.Managers.Add(manager);
                _repositories.Save();
                managerId = _repositories.Managers.GetId(manager);
            }

            var clientId = _repositories.Clients.GetId(client);

            if (clientId == null)
            {
                _repositories.Clients.Add(client);
                _repositories.Save();
                clientId = _repositories.Clients.GetId(client);
            }

            var productId = _repositories.Products.GetId(product);

            if (productId == null)
            {
                _repositories.Products.Add(product);
                _repositories.Save();
                productId = _repositories.Products.GetId(product);
            }

            var saleInfo = new DAL.Models.SaleInfo()
            {
                Date      = saleDto.Date,
                ManagerId = (int)managerId,
                ClientId  = (int)clientId,
                ProductId = (int)productId,
                Amount    = saleDto.Amount
            };

            var sale = _repositories.SalesInfo.GetAll().FirstOrDefault(s => (s.Id == saleDto.Id));

            sale.Date      = saleDto.Date;
            sale.ManagerId = (int)managerId;
            sale.ClientId  = (int)clientId;
            sale.ProductId = (int)productId;
            sale.Amount    = saleDto.Amount;

            _repositories.SalesInfo.Update(sale);
            _repositories.Save();
        }