public bool GetPackageFromCustomer(GeneratedPackage package) { Log($"get package from customer, registering it in core"); CoreServiceClient coreClient = new CoreServiceClient(); coreClient.RegisterPackage(package); return(true); }
// need testing public Package RegisterPackage(GeneratedPackage package) { //Package result = new Package //{ // DestinationStation = _db.Stations.First(s => s.Id == package.DestinationStationId), // RecipientPhoneNumber = package.RecipientNumber, // Size = _db.PackageSizes.First(ps => ps.Id == package.PackageSizeId), // Weight = package.PackageWeight //}; //_db.Packages.Add(result); //_db.SaveChanges(); //result = _db.Packages.Include("DestinationStation").Include("Size").First(p => // p.DestinationStation.Id == package.DestinationStationId && // p.RecipientPhoneNumber == package.RecipientNumber && // p.Size.Id == package.PackageSizeId && // p.Weight == package.PackageWeight); //Customer customer = _db.Customers.First(c => c.Id == package.SenderId); //if (customer != null) //{ // _db.CustomerPackages.Add(new CustomerPackage { Package = result, Sender = customer }); //} //else //{ // if (_db.Customers.Count() > package.SenderId) // { // customer = _db.Customers.ToList()[package.SenderId]; // } // else // { // customer = _db.Customers.ToList()[0]; // } // _db.CustomerPackages.Add(new CustomerPackage { Package = result, Sender = customer }); //} //_db.SaveChanges(); //Transfer transfer = new Transfer() //{ // ArrivalStation = _db.Stations.First(s => s.Id == package.DestinationStationId), // ArrivalTime = DateTime.Now, // Package = result //}; Log("Package from " + package.SenderId + " to " + package.RecipientNumber + " registered."); //RegisterTransfer(transfer); return(null); }
public void SendPackageToStationSimulator(GeneratedPackage package) { try { string address = "http://localhost:5000/Station/" + package.DepartureStationId; StationServiceClient station = new StationServiceClient(new WSHttpBinding(), new EndpointAddress(new Uri(address))); station.GetPackageFromCustomer(package); station.Close(); } catch (Exception exception) { Log("Exception: " + exception.Message); } }
public GeneratedPackage GetRelationByRuleAndWord(int ruleId, int wordId) { try { var res = new GeneratedPackage(); res.Relation = Context.Relations.FirstOrDefault(p => p.RuleID == ruleId && p.WordID == wordId); res.Rule = Context.Rules.FirstOrDefault(p => p.ID == ruleId); res.Word = Context.Words.FirstOrDefault(p => p.ID == wordId); var availableRules = Context?.Rules?.Where(p => res.Rule != null && p.ModeID == res.Rule.ModeID); res.AvailableNumbers = Context?.Numbers?.Where(p => availableRules.Any(q => q.NumberID == p.ID))?.ToArray(); res.AvailablePersons = Context?.Persons?.Where(p => availableRules.Any(q => q.PersonID == p.ID))?.ToArray(); res.AvailableGenders = Context?.Genders?.Where(p => availableRules.Any(q => q.GenderID == p.ID))?.ToArray(); return(res); } catch (Exception ex) { _logger.LogError(ex.Message, new[] { ruleId, wordId }); } return(null); }
public GeneratedPackage GetRandomRelationDetailed(int exclId, int fixMode) { try { var res = new GeneratedPackage(); res.Relation = GetRandomRelation(exclId, fixMode); res.Word = Context?.Words?.FirstOrDefault(p => res.Relation != null && p.ID == res.Relation.WordID); res.Rule = Context?.Rules?.FirstOrDefault(p => res.Relation != null && p.ID == res.Relation.RuleID); var availableRules = Context?.Rules?.Where(p => res.Rule != null && p.ModeID == res.Rule.ModeID); res.AvailableNumbers = Context?.Numbers?.Where(p => availableRules.Any(q => q.NumberID == p.ID))?.ToArray(); res.AvailablePersons = Context?.Persons?.Where(p => availableRules.Any(q => q.PersonID == p.ID))?.ToArray(); res.AvailableGenders = Context?.Genders?.Where(p => availableRules.Any(q => q.GenderID == p.ID))?.ToArray(); return(res); } catch (Exception ex) { _logger.LogError(ex.Message, new[] { exclId, fixMode }); } return(null); }
public void StartSimulation() // param: StationSimulatorClient { RequestParamsFromCore(); //Console.WriteLine("Customers {0}, Station {1}, Sizes {2}", NumberOfCustomers, NumberOfStations, NumberOfPackageSizes); if (NumberOfPackageSizes > 0 && NumberOfStations > 0 && MaxDelay > MinDelay && MaxWeight > 0 && DelayMultiplier > 0 && MinDelay >= 0 && PhoneLength >= 7 && NumberOfCustomers > 0) { Console.WriteLine("Simulation started..."); _isWorking = true; while (_isWorking) { int departureStationId = PickStation(); GeneratedPackage package = new GeneratedPackage() { DepartureStationId = _stations[departureStationId].Id, DestinationStationId = _stations[PickStationDifferentFrom(departureStationId)].Id, SenderId = _customers[PickCustomer()].Id, PackageSizeId = _sizes[PickPackageSize()].Id, PackageWeight = (float)GenerateWeight(), RecipientNumber = GenerateRecipientPhoneNumber() }; SendPackageToStationSimulator(package); Thread.Sleep(GenerateDelay()); } Console.WriteLine("Simulation stoped..."); } else { throw new WrongSimulationParamsException(); } }
public Package RegisterPackage(GeneratedPackage package) { return(Core.RegisterPackage(package)); }
public bool GetPackageFromCustomer(GeneratedPackage package) { return(_station.GetPackageFromCustomer(package)); }
bool IStation.GetPackageFromCustomer(GeneratedPackage package) { throw new NotImplementedException(); }