Esempio n. 1
0
        public bool GetPackageFromCustomer(GeneratedPackage package)
        {
            Log($"get package from customer, registering it in core");
            CoreServiceClient coreClient = new CoreServiceClient();

            coreClient.RegisterPackage(package);
            return(true);
        }
Esempio n. 2
0
        // 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);
        }
Esempio n. 3
0
 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);
 }
Esempio n. 6
0
        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();
            }
        }
Esempio n. 7
0
 public Package RegisterPackage(GeneratedPackage package)
 {
     return(Core.RegisterPackage(package));
 }
Esempio n. 8
0
 public bool GetPackageFromCustomer(GeneratedPackage package)
 {
     return(_station.GetPackageFromCustomer(package));
 }
 bool IStation.GetPackageFromCustomer(GeneratedPackage package)
 {
     throw new NotImplementedException();
 }