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; } } }
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; } } }