Ejemplo n.º 1
0
        //public void GenerateSaleData()
        //{

        //    var employees = GetAllEmployees().ToArray();
        //    var customers = GetAllCustomers();

        //    var empRandom = new Random();
        //    var custRandom = new Random();


        //    CryptoRandom rand = new CryptoRandom();


        //    for(var index = new DateTime(2014, 7, 1); index < DateTime.Now; index = index.AddDays(rand.Next(1,7)))
        //    {
        //        CryptoRandom random = new CryptoRandom();
        //        Thread.Sleep(500);

        //        var employeeDailySaleCount = empRandom.Next(1, employees.Length - 1);


        //        for (var n = 0; n <= employeeDailySaleCount; n++)
        //        {
        //            var randomCustomerIndex = custRandom.Next(1, customers.Count() - 1);
        //            var customer = customers.ElementAt(randomCustomerIndex);

        //            var randomEmployeeIndex = empRandom.Next(1, employees.Count() - 1);
        //            var employee = employees[randomEmployeeIndex];

        //            var cusDTO = new CustomerDTO { CustomerId = customer.Id, CustomerName = customer.Name };


        //            var fin = random.Next(1, 3);
        //            var b = false;
        //            if (fin > 1)
        //            {
        //                b = true;
        //            }
        //            var s = RegisterSale(index, random.Next(1, 100), cusDTO, b, employee.Id);

        //            var pList = _repoProduct.AsQueryable().Where(v => v.Id > 0).ToArray();

        //            int numberOfItems = random.Next(1, 10);
        //            for (int i = 0; i < numberOfItems; i++)
        //            {
        //                var qty = random.Next(1, 10);
        //                var pId = random.Next(1, pList.Length - 1);
        //                var product = FetchProduct(pId);
        //                while(product == null)
        //                {
        //                    pId++;
        //                    product = FetchProduct(pId);
        //                }
        //                var sli = RegisterSaleLineItem(pId, s.SaleId, qty);
        //            }

        //        }

        //    }

        //}

        #region Sale


        public List <SaleDTO> ListSales(int CustomerId)
        {
            //GenerateSaleData();
            var list = new List <Sale>();

            if (CustomerId != 0)
            {
                var cusSpec = new Specification <SaleLead>(s => s.CustomerId == CustomerId);
                list = _repoSaleLead.AsQueryable().Where(c => c.CustomerId == CustomerId).Select(s => s.Sale).ToList();
            }
            else
            {
                list = _repoSale.AsQueryable().Select(x => x).ToList();
            }
            var dtoList = new List <SaleDTO>();

            foreach (var lis in list)
            {
                var emp    = FindOrCreateSalePositionLead(lis, null);
                var record = ConvertToDTO(lis, emp.FinalisedSale, emp);
                dtoList.Add(record);
            }

            return(dtoList);
        }
Ejemplo n.º 2
0
        public IHttpActionResult Get([ModelBinder(typeof(Kendo.Mvc.UI.WebApiDataSourceRequestModelBinder))] DataSourceRequest request)
        {
            //var sales = _serviceSale.ListSales(0);
            //var salesWViewModels = new List<SaleViewModel>();
            //foreach (var s in sales)
            //{
            //    var vm = new SaleViewModel { SaleId = s.SaleId, Date = s.Date, OrderNumber = s.OrderNumber, Customer = new SaleCustomerViewModel { CustomerId = s.CustomerId, CustomerName = s.CustomerName }, Employee = new SaleEmployeeViewModel { EmployeeId = s.EmployeeId, EmployeeName = s.EmployeeName }, Finalised = s.Finalised };
            //    salesWViewModels.Add(vm);
            //}

            var salesWViewModels = _repoSale.AsQueryable().ToDataSourceResult(request,
                                                                              s => new SaleViewModel
            {
                SaleId =
                    s.Id,
                Date        = s.Date,
                OrderNumber = s.OrderNumber,
                Customer    = new SaleCustomerViewModel
                {
                    CustomerId   = s.SaleLeads.First().CustomerId,
                    CustomerName = s.SaleLeads.First().Customer.Name
                },
                Employee = new SaleEmployeeViewModel
                {
                    EmployeeId   = s.SaleLeads.First().SalePositionLeads.Last().EmployeeInSalePosition.EmployeeId,
                    EmployeeName = s.SaleLeads.First().SalePositionLeads.Last().EmployeeInSalePosition.Employee.Lastname + ", " +
                                   s.SaleLeads.First().SalePositionLeads.Last().EmployeeInSalePosition.Employee.Firstname
                },
                Finalised = s.SaleLeads.First().SalePositionLeads.Last().FinalisedSale
            });

            return(Ok(salesWViewModels));
        }
Ejemplo n.º 3
0
 public SaleLead CreateSaleLead(int customerId, int stateId, int saleId, DateTime timestamp)
 {
     if (saleId == 0)
     {
         var sale = new Sale { OrderNumber = 0, Date = DateTime.Now };
         _repoSale.Add(sale);
         var addedSale = _repoSale.AsQueryable().Where(o => o.OrderNumber == 0).ToList();
         saleId = addedSale.First().Id;
     }
     var lead = new SaleLead { CustomerId = customerId, StateId = stateId, SaleId = saleId, Timestamp = timestamp };
     _repoSaleLead.Add(lead);
     return lead;
 }