Example #1
0
        public async Task <IActionResult> Edit(int id, [Bind("Id,CityId,Code,Name,Status,Created,CreatedBy,Updated,UpdatedBy")] Borough borough)
        {
            if (id != borough.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    borough.Updated   = DateTime.Now;
                    borough.UpdatedBy = User.Identity.Name;
                    _context.Update(borough);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!BoroughExists(borough.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["CityId"] = new SelectList(_context.Cities, "Id", "Name", borough.CityId);
            ViewData["Status"] = new SelectList(Utils.Extensions.GetRecordStatusList(), "Value", "Text", borough.Status);
            return(View(borough));
        }
        public ActionResult DeleteConfirmed(string id)
        {
            Borough borough = db.Boroughs.Find(id);

            db.Boroughs.Remove(borough);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
        // GET: Boroughs/Edit/5
        public ActionResult Edit(string id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Borough borough = db.Boroughs.Find(id);

            if (borough == null)
            {
                return(HttpNotFound());
            }
            return(View(borough));
        }
 public ActionResult Create([Bind(Include = "ID,BoroughName,LongName,ShortName")] Borough borough)
 {
     if (ModelState.IsValid)
     {
         Person userperson = db.People.SingleOrDefault(p => p.ID == 0);
         borough.Creator  = userperson;
         borough.Created  = DateTime.Now;
         borough.Modifier = userperson;
         borough.Modified = DateTime.Now;
         db.Boroughs.Add(borough);
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(borough));
 }
        public bool CreateBorough(BoroughCreate model)
        {
            var entity =
                new Borough()
            {
                CreatorId = _userId,
                Name      = model.Name,
                Direction = model.Direction
            };

            using (var ctx = new ApplicationDbContext())
            {
                ctx.Boroughs.Add(entity);
                return(ctx.SaveChanges() == 1);
            }
        }
Example #6
0
        public async Task <IActionResult> Create([Bind("Id,CityId,Code,Name,Status,Created,CreatedBy,Updated,UpdatedBy")] Borough borough)
        {
            if (ModelState.IsValid)
            {
                borough.Created   = DateTime.Now;
                borough.Updated   = DateTime.Now;
                borough.CreatedBy = User.Identity.Name;
                borough.UpdatedBy = User.Identity.Name;
                _context.Add(borough);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["CityId"] = new SelectList(_context.Cities, "Id", "Name", borough.CityId);
            ViewData["Status"] = new SelectList(Utils.Extensions.GetRecordStatusList(), "Value", "Text", borough.Status);
            return(View(borough));
        }
        public ActionResult Edit([Bind(Include = "ID,BoroughName,LongName,ShortName")] Borough borough)
        {
            if (ModelState.IsValid)
            {
                Borough boroughInDB = db.Boroughs.Single(b => b.ID == borough.ID);
                boroughInDB.BoroughName = borough.BoroughName;
                boroughInDB.LongName    = borough.LongName;
                boroughInDB.ShortName   = borough.ShortName;

                Person userperson = db.People.SingleOrDefault(p => p.ID == 0);
                boroughInDB.Modifier = userperson;
                boroughInDB.Modified = DateTime.Now;
                //db.Entry(borough).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(borough));
        }
Example #8
0
        public ITripMetrics GetMetrics(DrivingService drivingService, Borough startBorough, Borough stopBorough, TimeSpan tripPickupTime)
        {
            // decide which provider to use
            ITripMetricsProvider tmp;

            if (drivingService == DrivingService.GreenTaxi)
            {
                tmp = new GreenTaxiTripMetricsProvider(_configuration, _drivingServiceDataProvider);
            }
            else
            {
                throw new NotSupportedException($"Trip Provider '{drivingService}' is not yet supported.");
            }

            // get metrics from the provider
            var tripMetrics = tmp.GetMetrics(startBorough, stopBorough, tripPickupTime);

            // return the metrics to the caller
            return(tripMetrics);
        }
Example #9
0
        public ActionResult <ITripMetrics> Get(DrivingService drivingService, Borough startBorough, Borough stopBorough, string tripPickupTime)
        {
            if (TimeSpan.TryParse(tripPickupTime, out TimeSpan ts) == false)
            {
                return(BadRequest("tripPickupTime is not a valid time."));
            }

            if (ts.TotalHours >= 24)
            {
                return(BadRequest("tripPickupTime must be a time of day and so must be between 00:00 and 23:59."));
            }

            var metrics = _tripMetricsManager.GetMetrics(drivingService, startBorough, stopBorough, ts);

            if (metrics == null)
            {
                return(NoContent());
            }

            return(Ok(metrics));
        }
Example #10
0
        public ITripMetrics GetMetrics(Borough startBorough, Borough stopBorough, TimeSpan tripPickupTime)
        {
            var windowMinutes = int.Parse(_configuration["StartTimeWindowMinutes"]);

            TimeSpan startTime = tripPickupTime - new TimeSpan(0, windowMinutes, 0);
            TimeSpan stopTime  = tripPickupTime + new TimeSpan(0, windowMinutes, 0);

            // find the historical trips relevant to this request
            var relevantTrips = _trips.Where(t => t.StartBorough == startBorough &&
                                             t.StopBorough == stopBorough &&
                                             (t.PickupDateTime.TimeOfDay >= startTime && t.PickupDateTime.TimeOfDay <= stopTime)
                                             );

            // if no trips were relevant, we can't return any metrics
            if (!relevantTrips.Any())
            {
                return(null);
            }

            // otherwise let's compute some metrics!
            var metrics = new GreenTaxiTripMetrics();

            metrics.TripCount             = relevantTrips.Count();
            metrics.StartBorough          = startBorough;
            metrics.StopBorough           = stopBorough;
            metrics.TripTime              = tripPickupTime;
            metrics.AverageTripDuration   = TimeSpan.FromSeconds((relevantTrips.Average(t => (t.DropoffDateTime - t.PickupDateTime).TotalSeconds)));
            metrics.AveragePassengerCount = Convert.ToDecimal(relevantTrips.Average(t => t.PassengerCount));
            metrics.MaximumPassengerCount = relevantTrips.Max(t => t.PassengerCount);
            metrics.AverageTripDistance   = Convert.ToDecimal(relevantTrips.Average(t => t.TripDistance));
            metrics.MaximumTripDistance   = Convert.ToDecimal(relevantTrips.Max(t => t.TripDistance));
            metrics.AverageTotalAmount    = Convert.ToDecimal(relevantTrips.Average(t => t.TotalAmount));
            metrics.MaximumTotalAmount    = Convert.ToDecimal(relevantTrips.Max(t => t.TotalAmount));

            // return the completed metrics
            return(metrics);
        }
 public static List<IEntity> GetMicrodistricts(Borough b)
 {
     return Instance._regionsModel.GetMicrodistricts(b);
 }
        public List<IEntity> GetMicrodistricts(Borough borough)
        {
            List<IEntity> res = new List<IEntity>();
            List<IEntity> temp = GetReferencedEntities("Microdistricts", "BoroughID", borough.ID);

            foreach (SimpleEntity se in temp)
            {
                res.Add(new Microdistrict(se.Name) { ID = se.ID });
            }

            return res;
        }
 public BoroughSelector(Borough b)
 {
     this.Boro     = b;
     this.Selected = false;
 }
        public ActionResult Save(PersonFormViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                ViewBag.TitleID      = new SelectList(_context.Titles, "ID", "TitleValue");
                ViewBag.FinanceCode  = new SelectList(_context.CostCentres, "Code", "CCName");
                ViewBag.SubjectiveID = new SelectList(_context.Subjectives, "Code", "Subname");
                ViewBag.CohortID     = new SelectList(_context.Cohorts.OrderBy(c => c.Number), "ID", "CohortDescription");
                ViewBag.LineManID    = new SelectList(_context.People.Where(p => p.Flags.Select(f => f.ID).Contains("LMR")), "ID", "FullName");
                List <int> teams = _context.People.SingleOrDefault(p => p.ID == viewModel.ID).MemberOf.Select(m => m.TeamID).ToList();
                ViewBag.TeamList = _context.Teams.Where(p => !teams.Contains(p.ID)).OrderBy(t => t.TeamName);
                List <int> servs = _context.People.SingleOrDefault(p => p.ID == viewModel.ID).Services.Select(s => s.ID).ToList();
                ViewBag.ServiceList = _context.Services.Where(s => !servs.Contains(s.ID) && s.Level == ServiceLevel.Speciality && s.Display).OrderBy(s => s.ServiceName);
                return(View("PersonForm", viewModel));
            }

            Person userperson = _context.People.SingleOrDefault(p => p.ID == 0);

            if (viewModel.ID == 0)
            {
                Person person = new Person();

                person.TitleID       = viewModel.TitleID;
                person.Forename      = viewModel.Forename;
                person.MiddleName    = viewModel.MiddleName;
                person.Surname       = viewModel.Surname;
                person.PreferredName = viewModel.PreferredName;
                person.Gender        = viewModel.Gender;
                person.JobTitle      = viewModel.JobTitle;
                person.FinanceCode   = viewModel.FinanceCode;
                person.SubjectiveID  = viewModel.SubjectiveID;
                person.Phone         = viewModel.Phone;
                person.Email         = viewModel.Email;
                person.Comments      = viewModel.Comments;
                person.CohortID      = viewModel.CohortID;
                foreach (var fs in viewModel.Flags.Where(f => f.Selected))
                {
                    person.Flags.Add(_context.Flags.Single(f => f.ID == fs.Flag.ID));
                }
                foreach (var bs in viewModel.Boroughs.Where(b => b.Selected))
                {
                    person.Boroughs.Add(_context.Boroughs.Single(b => b.ID == bs.Boro.ID));
                }
                foreach (var mhc in viewModel.MHCs.Where(m => m.Selected))
                {
                    person.Services.Add(_context.Services.Single(s => s.ID == mhc.Service.ID));
                }
                if (person.TitleID != 0 && person.Gender == null)
                {
                    person.Gender = _context.Titles.SingleOrDefault(t => t.ID == person.TitleID).DefaultGender;
                }

                person.Created  = DateTime.Now;
                person.Creator  = userperson;
                person.Modified = DateTime.Now;
                person.Modifier = userperson;
                _context.People.Add(person);
            }
            else
            {
                var personInDb = _context.People.Single(p => p.ID == viewModel.ID);

                personInDb.TitleID       = viewModel.TitleID;
                personInDb.Forename      = viewModel.Forename;
                personInDb.MiddleName    = viewModel.MiddleName;
                personInDb.Surname       = viewModel.Surname;
                personInDb.PreferredName = viewModel.PreferredName;
                personInDb.Gender        = viewModel.Gender;
                personInDb.JobTitle      = viewModel.JobTitle;
                personInDb.FinanceCode   = viewModel.FinanceCode;
                personInDb.SubjectiveID  = viewModel.SubjectiveID;
                personInDb.Phone         = viewModel.Phone;
                personInDb.Email         = viewModel.Email;
                personInDb.Comments      = viewModel.Comments;
                personInDb.CohortID      = viewModel.CohortID;

                foreach (var fs in viewModel.Flags)
                {
                    Flag flg = _context.Flags.Single(f => f.ID == fs.Flag.ID);
                    if (fs.Selected)
                    {
                        if (!personInDb.Flags.Contains(flg))
                        {
                            personInDb.Flags.Add(flg);
                        }
                    }
                    else
                    {
                        if (personInDb.Flags.Contains(flg))
                        {
                            personInDb.Flags.Remove(flg);
                        }
                    }
                }

                foreach (var bs in viewModel.Boroughs)
                {
                    Borough bo = _context.Boroughs.Single(b => b.ID == bs.Boro.ID);
                    if (bs.Selected)
                    {
                        if (!personInDb.Boroughs.Contains(bo))
                        {
                            personInDb.Boroughs.Add(bo);
                        }
                    }
                    else
                    {
                        if (personInDb.Boroughs.Contains(bo))
                        {
                            personInDb.Boroughs.Remove(bo);
                        }
                    }
                }

                foreach (var mhc in viewModel.MHCs)
                {
                    Service s = _context.Services.Single(serv => serv.ID == mhc.Service.ID);
                    if (mhc.Selected)
                    {
                        if (!personInDb.Services.Contains(s))
                        {
                            personInDb.Services.Add(s);
                        }
                    }
                    else
                    {
                        if (personInDb.Services.Contains(s))
                        {
                            personInDb.Services.Remove(s);
                        }
                    }
                }

                foreach (var mem in viewModel.Memberships)
                {
                    var  memberInDB = _context.TeamMembers.Single(m => m.ID == mem.ID);
                    bool changed    = false;
                    if (memberInDB.Active != mem.Active)
                    {
                        memberInDB.Active = mem.Active;
                        changed           = true;
                    }
                    if (memberInDB.Main != mem.Main)
                    {
                        //if set to main all other records for this person shouldn't be!
                        if (mem.Main)
                        {
                            var staffID      = memberInDB.StaffID;
                            var otherRecords = _context.People.Single(p => p.ID == staffID).MemberOf.Where(m => m.ID != mem.ID);
                            foreach (var otherRecord in otherRecords)
                            {
                                if (otherRecord.Main)
                                {
                                    otherRecord.Main     = false;
                                    otherRecord.Modified = DateTime.Now;
                                    otherRecord.Modifier = userperson;
                                }
                            }
                        }
                        memberInDB.Main = mem.Main;
                        changed         = true;
                    }
                    if (changed)
                    {
                        memberInDB.Modified = DateTime.Now;
                        memberInDB.Modifier = userperson;
                    }
                }

                personInDb.Modified = DateTime.Now;
                personInDb.Modifier = userperson;
            }

            _context.SaveChanges();

            return(RedirectToAction("Index", "Person"));
        }
Example #15
0
        public static void Initialize(ApplicationContext context)
        {
            context.Database.EnsureCreated();

            // Look for any roles.

            /*if (context.Roles.Any())
             * {
             *  return;   // DB has been seeded
             * }*/


            if (!context.Roles.Any())
            {
                var roles = new Role[]
                {
                    new Role {
                        Name = "Administrator", Description = "Administrator role", Status = "Active", Created = DateTime.Now, CreatedBy = "Admin", Updated = DateTime.Now, UpdatedBy = "Admin"
                    },
                    new Role {
                        Name = "Contributor", Description = "Contributer role", Status = "Active", Created = DateTime.Now, CreatedBy = "Admin", Updated = DateTime.Now, UpdatedBy = "Admin"
                    }
                };
                foreach (Role r in roles)
                {
                    context.Roles.Add(r);
                }
                context.SaveChanges();
            }

            if (!context.AuthenticationSchemes.Any())
            {
                var schemes = new AuthenticationScheme[]
                {
                    new AuthenticationScheme {
                        Name = "Standard authentication scheme", Status = "Active", Created = DateTime.Now, CreatedBy = "Admin", Updated = DateTime.Now, UpdatedBy = "Admin"
                    },
                };
                foreach (AuthenticationScheme r in schemes)
                {
                    context.AuthenticationSchemes.Add(r);
                }
                context.SaveChanges();
            }

            if (!context.Countries.Any())
            {
                var countries = new Country[]
                {
                    new Country {
                        Code = "hr", Name = "Croatia", Language = "hr", Status = "Active", Created = DateTime.Now, CreatedBy = "Admin", Updated = DateTime.Now, UpdatedBy = "Admin"
                    }
                };
                foreach (Country c in countries)
                {
                    context.Countries.Add(c);
                }
                context.SaveChanges();
            }

            if (!context.Cities.Any())
            {
                var cities = new City[]
                {
                    new City {
                        Code = "ZG", Name = "Zagreb", Status = "Active", Created = DateTime.Now, CreatedBy = "Admin", Updated = DateTime.Now, UpdatedBy = "Admin", CountryId = 1
                    }
                };
                foreach (City c in cities)
                {
                    context.Cities.Add(c);
                }
                context.SaveChanges();
            }

            if (!context.Boroughs.Any())
            {
                var boroughs = new Borough[]
                {
                    new Borough {
                        Code = "ZGGD", Name = "Gornja Dubrava", Status = "Active", Created = DateTime.Now, CreatedBy = "Admin", Updated = DateTime.Now, UpdatedBy = "Admin", CityId = 1
                    }
                };
                foreach (Borough c in boroughs)
                {
                    context.Boroughs.Add(c);
                }
                context.SaveChanges();
            }

            if (!context.Users.Any())
            {
                var users = new User[]
                {
                    new User {
                        Username = "******", Password = "******", FirstName = "Admin", LastName = "User", Email = "*****@*****.**", Lat = "45.828148899999995", Lng = "16.0746871", Status = "Active", Created = DateTime.Now, CreatedBy = "Admin", Updated = DateTime.Now, UpdatedBy = "Admin", CountryId = 1, AuthenticationSchemeId = 1
                    }
                };
                foreach (User u in users)
                {
                    context.Users.Add(u);
                }
                context.SaveChanges();
            }

            if (!context.UserRoles.Any())
            {
                var userRoles = new UserRole[]
                {
                    new UserRole {
                        UserId = 1, RoleId = 1, Status = "Active", Created = DateTime.Now, CreatedBy = "Admin", Updated = DateTime.Now, UpdatedBy = "Admin"
                    }
                };
                foreach (UserRole u in userRoles)
                {
                    context.UserRoles.Add(u);
                }
                context.SaveChanges();
            }
        }
Example #16
0
        public ActionResult Edit(TeamFormViewModel team)
        {
            if (ModelState.IsValid)
            {
                Team teamInDB = db.Teams.Include(t => t.Boroughs).Single(t => t.ID == team.ID);
                teamInDB.TeamName    = team.TeamName;
                teamInDB.FinanceCode = team.FinanceCode;
                teamInDB.LeaderID    = team.LeaderID;
                teamInDB.CohortID    = team.CohortID;
                teamInDB.NoTrain     = team.NoTrain;

                Person userperson = db.People.SingleOrDefault(p => p.ID == 0);
                teamInDB.Modifier = userperson;
                teamInDB.Modified = DateTime.Now;
                //               db.Entry(team).State = EntityState.Modified;

                foreach (var bs in team.Boroughs)
                {
                    Borough bo = db.Boroughs.Single(b => b.ID == bs.Boro.ID);
                    if (bs.Selected)
                    {
                        if (!teamInDB.Boroughs.Contains(bo))
                        {
                            teamInDB.Boroughs.Add(bo);
                        }
                    }
                    else
                    {
                        if (teamInDB.Boroughs.Contains(bo))
                        {
                            teamInDB.Boroughs.Remove(bo);
                        }
                    }
                }

                foreach (var mhc in team.MHCs)
                {
                    Service s = db.Services.Single(serv => serv.ID == mhc.Service.ID);
                    if (mhc.Selected)
                    {
                        if (!teamInDB.Services.Contains(s))
                        {
                            teamInDB.Services.Add(s);
                        }
                    }
                    else
                    {
                        if (teamInDB.Services.Contains(s))
                        {
                            teamInDB.Services.Remove(s);
                        }
                    }
                }

                foreach (var mem in team.Members)
                {
                    var  memberInDB = db.TeamMembers.Single(m => m.ID == mem.ID);
                    bool changed    = false;
                    if (memberInDB.Active != mem.Active)
                    {
                        memberInDB.Active = mem.Active;
                        changed           = true;
                    }
                    if (memberInDB.Main != mem.Main)
                    {
                        //if set to main all other records for this person shouldn't be!
                        if (mem.Main)
                        {
                            var staffID      = memberInDB.StaffID;
                            var otherRecords = db.People.Single(p => p.ID == staffID).MemberOf.Where(m => m.ID != mem.ID);
                            foreach (var otherRecord in otherRecords)
                            {
                                if (otherRecord.Main)
                                {
                                    otherRecord.Main     = false;
                                    otherRecord.Modified = DateTime.Now;
                                    otherRecord.Modifier = userperson;
                                }
                            }
                        }
                        memberInDB.Main = mem.Main;
                        changed         = true;
                    }
                    if (changed)
                    {
                        memberInDB.Modified = DateTime.Now;
                        memberInDB.Modifier = userperson;
                    }
                }

                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            ViewBag.CohortID    = new SelectList(db.Cohorts, "ID", "Code", team.CohortID);
            ViewBag.FinanceCode = new SelectList(db.CostCentres, "Code", "CCName", team.FinanceCode);
            ViewBag.LeaderID    = new SelectList(db.People, "ID", "Fullname", team.LeaderID);
            List <int> members = team.Members.Select(m => m.StaffID).ToList();

            ViewBag.StaffList = db.People.Where(p => !members.Contains(p.ID)).Where(p => p.ID > 0);
            List <int> servs = team.Services.Select(s => s.ID).ToList();

            ViewBag.ServiceList = db.Services.Where(s => !servs.Contains(s.ID) && s.Level == ServiceLevel.Speciality && s.Display).OrderBy(s => s.ServiceName);
            return(View(team));
        }