public void ServiceOptionDetails(ICorierServiceContext dbContext, int serviceId)
        {
            var serviceOptions = from serOp in dbContext.ServiceOptions
                                 join servTy in dbContext.ServicesTypes
                                 on serOp.ServicesTypeId equals servTy.Id
                                 select new
            {
                Id           = serOp.Id,
                Weight       = serOp.Weight,
                Price        = serOp.Price,
                TimeDuration = serOp.TimeDuration,
                ServiceType  = servTy.ServiceType
            };

            Console.WriteLine("Num | Weight  |  TimeDuration | ServicesType");


            foreach (var item in serviceOptions)
            {
                if (item.Id == serviceId)
                {
                    Console.WriteLine($" {item.Id}    {item.Weight}           {item.TimeDuration}              {item.ServiceType}");
                }
            }
        }
        public void CloseDistribution(ICorierServiceContext dbContext, IQueriesFixer distributions, ICommandParser comandParser, int userId)
        {
            var notClosedItemsId = new List <int>();

            Console.OutputEncoding = System.Text.Encoding.Unicode;
            Console.InputEncoding  = System.Text.Encoding.Unicode;

            var distribClose = dbContext.Services
                               .Where(g => g.UserFixerId == userId).Where(t => t.IsCompleted == false)
                               .Select(s => new { s.Id, s.Details, s.City.CityName, s.ServiceOption, s.City }).ToList();

            foreach (var item in distribClose)
            {
                Console.WriteLine(" {0}  {1} --> {2}", item.Id, item.Details, item.CityName);
                notClosedItemsId.Add(item.Id);
            }

            Console.WriteLine();
            Console.WriteLine(" Please enter distribution to close");
            Console.WriteLine("------------------------------------------");
            var serviceItemToClose = comandParser.CommandParse(notClosedItemsId, "Destribution");
            int servOptId          = 0;
            int citiIdd            = 0;

            foreach (var item in distribClose)
            {
                if (serviceItemToClose == item.Id)
                {
                    Console.WriteLine(" You want to close distribution -->  Y / N");
                    Console.WriteLine("-------------------------------------------");
                    Console.WriteLine(" | {0} --> {1} |", item.Details, item.CityName);
                    servOptId = item.ServiceOption.Id;
                    citiIdd   = item.City.Id;
                }
            }
            if (Console.ReadLine().ToLower() == "y")
            {
                var n = dbContext.Services.Find(serviceItemToClose);
                n.IsCompleted   = true;
                n.ServiceOption = dbContext.ServiceOptions.Find(servOptId);
                n.City          = dbContext.Cities.Find(citiIdd);

                dbContext.SaveChanges();
                Console.WriteLine(" Your order is processed");
                Console.WriteLine();
            }
            else
            {
                Console.WriteLine(" If you what to exit this service type \" EXIT \" ");
                if (Console.ReadLine().ToLower() == "exit")
                {
                    return;
                }
            }
        }
예제 #3
0
        public IList <string> AddOfficeToForm(ICorierServiceContext dbContext)
        {
            var result = new List <string>();

            string cityNameOffice = null;
            string addressOffice  = null;
            int    officeId       = 0;

            var allOffices = from offis in dbContext.Offices
                             join citi in dbContext.Cities
                             on offis.CityId equals citi.Id
                             select new
            {
                offceId  = offis.Id,
                address  = offis.Address,
                cityName = citi.CityName
            };

            var officeIdList = new List <int>();

            foreach (var item in allOffices.OrderBy(t => t.cityName).ThenBy(f => f.offceId))
            {
                ConsoleOutput.PrintLine($"  {item.offceId} {item.cityName}  {item.address}");
                officeIdList.Add(item.offceId);
            }

            var officeChosen = commandParser.CommandParse(officeIdList, "Offices");

            if (officeChosen == 0)
            {
                return(null);
            }

            foreach (var item in allOffices)
            {
                if (item.offceId == officeChosen)
                {
                    officeId       = item.offceId;
                    cityNameOffice = item.cityName;
                    addressOffice  = item.address;
                    break;
                }
            }
            result.Add(officeId.ToString());
            result.Add(cityNameOffice);
            result.Add(addressOffice);

            return(result);
        }
예제 #4
0
        // ----------------------------------------------------------------

        public IList <string> AddCityToForm(ICorierServiceContext dbContext)
        {
            var result          = new List <string>();
            var destinationCity = ConsoleInput.ReadLine();
            var cityName        = dbContext.Cities.Select(t => t.CityName).ToList();

            cityName.Sort();

            var cityNameLower = cityName.ConvertAll(d => d.ToLower());
            var searchCity    = cityNameLower.FirstOrDefault <string>(n => n.Equals(destinationCity.ToLower()));

            if (searchCity == null)
            {
                ConsoleOutput.PrintLine(" There is no such a city name \n  (Please type one from the list) ");
                ConsoleOutput.PrintLine("-----------------------------------------------");

                foreach (var item in cityName)
                {
                    Console.WriteLine(" {0}", item);
                }

                bool chekk = true;

                while (chekk)
                {
                    destinationCity = Console.ReadLine();
                    searchCity      = cityNameLower.FirstOrDefault <string>(n => n.Equals(destinationCity.ToLower()));

                    if (searchCity != null)
                    {
                        chekk = false;
                    }
                    else
                    {
                        Console.WriteLine(" Please choose a city from the list above");
                    }
                }
            }
            var citiId = dbContext.Cities.Where(c => c.CityName == destinationCity).Select(c => c.Id).ToList();

            result.Add(citiId[0].ToString());
            destinationCity = char.ToUpper(destinationCity[0]) + destinationCity.Substring(1);
            result.Add(destinationCity);
            return(result);
        }
예제 #5
0
        // ----------------------------------------------------------------

        public void QueryAllServicesOfGivenUser(ICorierServiceContext dbContext, int userId)
        {
            Console.OutputEncoding = System.Text.Encoding.Unicode;
            Console.InputEncoding  = System.Text.Encoding.Unicode;
            var res = dbContext.Services
                      .Where(s => s.UserId == userId)
                      .Select(t => new { t.Id, t.Details, t.CreateDate, t.City, t.IsCompleted, t.IsTaken })
                      .ToList();

            foreach (var item in res)
            {
                string taken  = item.IsTaken ? "on the way" : "in the office";
                string status = item.IsCompleted ? "delivered" : "not delivered";
                Console.WriteLine(" * {0}  -->   {1}  |  {2}", item.Details, taken, status);
                Console.WriteLine();
            }
            Console.WriteLine("-----------------------------------------------------");
        }
예제 #6
0
        public void PickUpDistribution(ICorierServiceContext dbContext, IQueriesFixer distributions, ICommandParser comandParser, int userId)
        {
            var serviceIdList = distributions.AvailableDistributionItems(dbContext);

            if (serviceIdList.Count == 0)
            {
                Console.WriteLine("There is not available items for distribution");
                return;
            }
            else
            {
                Console.WriteLine("Get more detail by number");
            }

            var serviceId  = comandParser.CommandParse(serviceIdList, "Service Options");
            var serviceAll = dbContext.Services
                             .Where(s => s.Id == serviceId)
                             .Select(t => new { t.ServiceOption, t.City })
                             .ToList();

            distributions.ServiceOptionDetails(dbContext, serviceAll[0].ServiceOption.Id);
            Console.WriteLine("Commit to Distribution -->  Y / N");

            if (Console.ReadLine().ToLower() == "y")
            {
                var n = dbContext.Services.Find(serviceId);
                n.IsTaken       = true;
                n.UserFixerId   = userId;
                n.ServiceOption = dbContext.ServiceOptions.Find(serviceAll[0].ServiceOption.Id);
                n.City          = dbContext.Cities.Find(serviceAll[0].City.Id);

                dbContext.SaveChanges();
                Console.WriteLine(" Your order is processed");
                Console.WriteLine();
            }
            else
            {
                Console.WriteLine(" If you what to exit this service type \" EXIT \" ");
                if (Console.ReadLine().ToLower() == "exit")
                {
                    return;
                }
            }
        }
예제 #7
0
        // -------------------------------------------------------------------------

        public ServiceOptionQuery AddOptionsToForm(ICorierServiceContext dbContext)
        {
            var helpQuery = new ServiceOptionQuery();

            var serviceOptions = from serOp in dbContext.ServiceOptions
                                 join servTy in dbContext.ServicesTypes
                                 on serOp.ServicesTypeId equals servTy.Id
                                 select new
            {
                Id           = serOp.Id,
                Weight       = serOp.Weight,
                Price        = serOp.Price,
                TimeDuration = serOp.TimeDuration,
                ServiceType  = servTy.ServiceType
            };

            ConsoleOutput.PrintLine("Num | Weight |  Price |  TimeDuration | ServicesType");

            var serviceOptionsIdList = new List <int>();

            foreach (var item in serviceOptions)
            {
                ConsoleOutput.PrintLine($" {item.Id}    {item.Weight}       {item.Price}       {item.TimeDuration}              {item.ServiceType}");
                serviceOptionsIdList.Add(item.Id);
            }
            ConsoleOutput.PrintLine("-----");


            var typeChosen = commandParser.CommandParse(serviceOptionsIdList, "ServiceOption");

            foreach (var item in serviceOptions)
            {
                if (typeChosen == item.Id)
                {
                    helpQuery.ServOptionId = item.Id;
                    helpQuery.Weight       = item.Weight;
                    helpQuery.Price        = item.Price;
                    helpQuery.TimeDuration = item.TimeDuration;
                    helpQuery.ServiceType  = item.ServiceType;
                    break;
                }
            }
            return(helpQuery);
        }
        public IList <int> AvailableDistributionItems(ICorierServiceContext dbContext)
        {
            Console.OutputEncoding = System.Text.Encoding.Unicode;
            Console.InputEncoding  = System.Text.Encoding.Unicode;
            var dict      = new Dictionary <string, string>();
            var serviceId = new List <int>();


            var allOffices = from offis in dbContext.Offices
                             join citi in dbContext.Cities
                             on offis.CityId equals citi.Id
                             select new
            {
                offceId  = offis.Id,
                address  = offis.Address,
                cityName = citi.CityName
            };

            foreach (var item in allOffices)
            {
                // Console.WriteLine($"  {item.offceId} {item.cityName}  {item.address}");
                dict.Add(item.offceId.ToString(), item.cityName);
            }

            var res = dbContext.Services
                      .Where(s => s.IsTaken == false)
                      .Select(t => new { t.Id, t.Details, t.OfficeId, t.City, })
                      .ToList();

            foreach (var item in res)
            {
                Console.WriteLine(" * {0} | {1} | {2}  -->   {3} ", item.Id, dict[item.OfficeId.ToString()], item.Details, item.City.CityName);
                Console.WriteLine();
                serviceId.Add(item.Id);
            }
            Console.WriteLine("-----------------------------------------------------");

            return(serviceId);
        }
 public DeliveryItemCreator(ICorierServiceContext dbContext, IQueriesDeliveryItem QueriesDeliveryItem, int userId)
 {
     this.QueriesDeliveryItem = QueriesDeliveryItem;
     this.dbContext           = dbContext;
     this.userId = userId;
 }
예제 #10
0
 public EntryPointToSQL(ICorierServiceContext dbContext, ICommandParser comandParser)
 {
     this.comandParser = comandParser;
     this.dbContext    = dbContext;
 }