public ActionResult DeleteInput(int?visitInputId, int serviceId) { if (visitInputId != null) { try { //Models.ActivityInput AI = DB.ActivityInputs.Find(visitInputId); // Do we need this? //AI.Activity = null; //for (int i = 0; i < AI.ActivityInputDatas.Count; i++) //{ // DB.ActivityInputDatas.Remove(AI.ActivityInputDatas.ElementAt(i)); //} //DB.ActivityInputs.Remove(AI); Models.Activity Act = DB.Activities.Find(visitInputId); Models.ServiceActivity SA = DB.ServiceActivities.Where(sa => sa.Service.ServiceId == serviceId && sa.Activity.ActivityId == visitInputId).FirstOrDefault(); SA.Active = false; DB.SaveChanges(); } catch (Exception e) { int x = 10; } } return(RedirectToAction("Index", new { serviceId = serviceId })); }
public JsonResult THC_AnsyActivity(string authkey) { THC_Library.Error error = null; string strTick = Request.Headers["QPID-TICK"]; string strData = Request.Headers["QPID-DATA"]; error = WebTHCAPP.Models.RequestChecker.CheckRequest(strTick, strData); Models.ResultBase result = new Models.ResultBase(); result.Number = 0; result.ErrorMessage = ""; if (error == null) { var reqActivity = Request.Form["activity"]; Models.Activity activity = new Models.Activity(); activity.asyncActivity(reqActivity, out error); } if (error != null) { result.Number = error.Number; result.ErrorMessage = error.ErrorMessage; } return(Json(result, "application/json", JsonRequestBehavior.AllowGet)); }
public void ShowValue(Models.Activity activity) { Console.Clear(); int maxlength = 10; int middle = (Console.WindowWidth - 17) / 2; ShowOnMiddle("Type: ", middle); ShowOnMiddleValues(activity.type, middle, maxlength); ShowOnMiddle("Distance: ", middle); ShowOnMiddleValues(activity.distance + " km", middle, maxlength); ShowOnMiddle("Date: ", middle); ShowOnMiddleValues(activity.date.Value.ToString("dd-MM-yyyy"), middle, maxlength); ShowOnMiddle("Note: ", middle); ShowOnMiddleValues(activity.note, middle, maxlength); /* * Console.WriteLine("Type: " + activity.type); * Console.WriteLine("Distance: " + activity.distance + " km"); * Console.WriteLine("Date: " + activity.date.Value.ToString("dd-MM-yyyy")); * Console.WriteLine("Note: " + activity.note); */ var position = Console.CursorTop; var menuList = new List <string> { "Edit", "Delete", "Back" }; Menu.ShowMenu(menuList, position); Selected = Menu.Selected; }
private void WorkWithMongo() { // To directly connect to a single MongoDB server // (this will not auto-discover the primary even if it's a member of a replica set) // or use a connection string var client = new MongoClient("mongodb://*****:*****@ds237947.mlab.com:37947/alexadb"); var database = client.GetDatabase("alexadb"); var activityCollection = database.GetCollection <Models.Activity>(typeof(Models.Activity).Name); var act = new Models.Activity(); act.Comment = "I love a..."; act.Status = Status.Suspend; act.CreatedDate = DateTime.Now; act.yourDate = DateTime.Now.AddDays(3); act.People = new List <People>(); act.People.Add(new People { Name = "Nguyen", Address = "OSD" }); act.People.Add(new People { Name = "Luc", Address = "RnD" }); activityCollection.InsertOne(act); var filterBuilder = Builders <Activity> .Filter; var filter = filterBuilder.Empty; var list = activityCollection.Find(filter).ToList(); }
public IActionResult ViewActivity(int ID) { int?IntVariable = HttpContext.Session.GetInt32("LoggedInUserId"); if (IntVariable == null) { ModelState.AddModelError("Login_Email", "Please Login"); return(RedirectToAction("Login_Registration")); } else { ViewBag.LoggedInUserId = HttpContext.Session.GetInt32("LoggedInUserId"); Models.Activity this_Activity = dbContext.Activities.Include(w => w.Attendees).ThenInclude(g => g.User).FirstOrDefault(w => w.ActivityId == ID); ViewBag.Title = this_Activity.Title; User this_user = dbContext.Users.FirstOrDefault(a => a.UserId == this_Activity.UserId); ViewBag.Coordinator = this_user.First_Name; ViewBag.Description = this_Activity.Description; List <Roster> Participants = this_Activity.Attendees; ViewBag.this_Activity = this_Activity; if (this_Activity.Attendees.Any(w => w.UserId == HttpContext.Session.GetInt32("LoggedInUserId"))) { this_Activity.Status = true; } else { this_Activity.Status = false; } return(View("ViewActivity", Participants)); } }
public async Task <bool> Create(Models.Log log) { if (!IsValidLog(log)) { return(false); } int currentLogs = (DateTime.Now.Year * 12) + DateTime.Now.Month; if ((log.Start.Year * 12) + log.Start.Month != currentLogs || (log.Stop.Year * 12) + log.Stop.Month != currentLogs) { return(false); } Models.Project project = await TimeSheetContext.Project.Where(x => x.Id == log.ProjectId).SingleOrDefaultAsync(); if (project == null) { return(false); } if (log.ActivityId != null || log.ActivityId != "") { Models.Activity activity = await TimeSheetContext.Activity.Where(x => x.Id == log.ActivityId).SingleOrDefaultAsync(); if (activity != null && activity.ProjectId == log.ProjectId) { log.Activity = activity; } } await TimeSheetContext.AddAsync(log); await TimeSheetContext.SaveChangesAsync(); return(true); }
public async Task <ActionResult <Dto.Activity> > GetActivity([FromQuery] string id) { if (id == null) { return(BadRequest()); } if (id == "") { return(BadRequest()); } Models.Activity activity = new Models.Activity { Id = id }; activity = await Repo.Get(activity); if (activity == null) { return(NotFound()); } Dto.Activity activityDto = new Dto.Activity { Id = activity.Id, ProjectId = activity.ProjectId, Name = activity.Name }; if (activityDto == null) { return(NotFound()); } return(Ok(activityDto)); }
//Look up activity by ActivityID public Activity Get(int ActivityID) { //create empty activity object Activity a = null; //query database using (SqlCommand cmd = new SqlCommand(GET_ONE, SQLConnectionSingleton.Instance.DbConnection)) { //binding of relevent DB parameters cmd.Parameters.AddWithValue("@ActivityID", ActivityID); //Reader to handle the result SqlDataReader reader = cmd.ExecuteReader(); //while there's a result while (reader.Read()) { a = new Activity() { ActivityID = reader.GetInt32(0), ActivityName = reader.GetString(1).ToString() }; } //the IO stream of data, coming from database is closed reader.Close(); } //Return the activity from database, or "null" if no user what Activity = ActivityID return(a); }
public IActionResult SubmitActivity(ActivityViewModel form) { if (ModelState.IsValid) { string duration = form.DurationValue + " " + form.Duration; Models.Activity thing = new Models.Activity { Title = form.Title, Time = form.Time, Date = form.Date.ToString("M/d"), Duration = duration, Description = form.Description, UserId = (int)HttpContext.Session.GetInt32("id"), }; _context.activities.Add(thing); UserActivity newjoin = new UserActivity { UserId = (int)HttpContext.Session.GetInt32("id"), ActivityId = thing.ActivityId }; _context.useractivities.Add(newjoin); _context.SaveChanges(); HttpContext.Session.SetInt32("activity_id", thing.ActivityId); string id = HttpContext.Session.GetInt32("activity_id").ToString(); return(Redirect("activity/" + id)); } return(View("CreateActivity", form)); }
/// <summary> /// Add strava activity to database. /// </summary> /// <param name="athleteId">Strava Athlete Id</param> /// <param name="item">Strava Summary infomation</param> /// <returns></returns> private Activity InsertActivity(StravaDotNetActivities.ActivitySummary item) { Models.Activity s = new Models.Activity(); try { s.AthleteId = _fvAthlete.Id; UpdateActivityDetails(item, s); s.DetailsDownloaded = false; // get the weight on the activty date on/before activity. ActivityWeight w = new ActivityWeight(_userId, item.Id); s.Weight = w.GetActivityWeight(); } catch (Exception ex) { // catches event types (i.e. watersport) which aren't handled. Ignoring these activities for now System.Diagnostics.Debug.WriteLine(ex.Message); return(null); } return(s); }
public IActionResult Add_Activity(Models.Activity activity) { if (activity.date < DateTime.Now) { TempData["error"] = "Event date must be in the future"; return(RedirectToAction("New", TempData["error"])); } if (ModelState.IsValid) { Models.Activity newActivity = new Models.Activity { name = activity.name, timeType = activity.timeType, time = activity.time, date = activity.date, duration = activity.duration, durationtype = activity.durationtype, description = activity.description, created_at = DateTime.Now, updated_at = DateTime.Now, PlannerId = HttpContext.Session.GetInt32("user_id").GetValueOrDefault() }; _context.Add(newActivity); _context.SaveChanges(); Models.Activity lastAct = _context.activities.Last(); int id = lastAct.ActivityId; return(RedirectToAction("Activity", new { @id = id })); } else { return(View("New")); } }
internal static void UpdateFromModel(this Activity dbActivity, Models.Activity activity, HubDbContext dbContext) { dbContext.Entry(dbActivity).CurrentValues.SetValues(activity); dbActivity.ContactMinistry = dbContext.Ministry.FirstOrDefault(m => m.Abbreviation == activity.ContactMinistryAbbreviation); if (activity.MinistriesSharedWith != null) { // This will also remove the unchecked ministries from dbActivity.ActivitySharedWith when the changed in the context are saved dbContext.ActivitySharedWith.RemoveRange(dbActivity.ActivitySharedWith.Where(m => !activity.MinistriesSharedWith.Contains(m.Ministry.Key))); foreach (var newMinistry in activity.MinistriesSharedWith.Where(sh => !dbActivity.ActivitySharedWith.Any(m => m.Ministry.Key == sh))) { dbActivity.ActivitySharedWith.Add(new ActivitySharedWith { Activity = dbActivity, Ministry = dbContext.Ministry.Single(m => m.Key == newMinistry) }); } } if (activity.Categories != null) { dbContext.ActivityCategories.RemoveRange(dbActivity.ActivityCategories.Where(ac => !activity.Categories.Contains(ac.Category.Name))); foreach (var newCategory in activity.Categories.Where(sh => !dbActivity.ActivityCategories.Any(ac => ac.Category.Name == sh))) { dbActivity.ActivityCategories.Add(new ActivityCategories { Activity = dbActivity, Category = dbContext.Category.Single(m => m.Name == newCategory) }); } } dbActivity.LastUpdatedDateTime = DateTime.Now; }
public IActionResult Delete(int ActivityId) { Models.Activity toDelete = _context.Activity.SingleOrDefault(d => d.ActivityId == ActivityId); _context.Activity.Remove(toDelete); _context.SaveChanges(); return(RedirectToAction("Index")); }
public List <Models.Activity> GetListeActivity() { SqlConnection sqlConnection = new SqlConnection("Data Source=(LocalDB)\\MSSQLLocalDB;Initial Catalog=activite;Integrated Security=True"); SqlCommand cmd = new SqlCommand(); SqlDataReader reader; cmd.CommandText = "GetListActivity"; cmd.CommandType = System.Data.CommandType.StoredProcedure; cmd.Connection = sqlConnection; sqlConnection.Open(); reader = cmd.ExecuteReader(); List <Models.Activity> result = new List <Models.Activity>(); while (reader.Read()) { Models.Activity item = new Models.Activity() { Nom = reader["nom"].ToString(), Duree = (int)reader["duree"], Cout = (int)reader["cout"], }; result.Add(item); } return(result); }
public async Task <bool> Delete(Models.Activity activity) { if (activity == null) { return(false); } if (activity.Id == null) { return(false); } if (activity.Id == "") { return(false); } try { Models.Activity activityGet = await TimeSheetContext.Activity.Where(x => x.Id == activity.Id).SingleOrDefaultAsync(); if (activityGet == null) { return(false); } } catch (Exception e) { return(false); } TimeSheetContext.Remove(activity); await TimeSheetContext.SaveChangesAsync(); return(true); }
public async Task <Models.Activity> Get(Models.Activity activity) { if (activity == null) { return(null); } if (activity.Id == null) { return(null); } if (activity.Id == "") { return(null); } Models.Activity activityGet = null; try { activityGet = await TimeSheetContext.Activity.Where(x => x.Id == activity.Id).SingleOrDefaultAsync(); } catch (Exception e) { return(null); } if (activityGet == null) { return(null); } return(activityGet); }
public async Task <bool> Update(Models.Activity activity) { if (activity == null) { return(false); } if (activity.Id == null) { return(false); } if (activity.Id == "") { return(false); } try{ Models.Activity activityOld = await TimeSheetContext.Activity.Where(x => x.Id == activity.Id).SingleOrDefaultAsync(); activity.ProjectId = activityOld.ProjectId; TimeSheetContext.Entry(activityOld).State = EntityState.Detached; activityOld = null; TimeSheetContext.Update(activity); } catch (Exception e) { return(false); } await TimeSheetContext.SaveChangesAsync(); return(true); }
public IActionResult DeleteActivity(int activityId) { Models.Activity remove = _context.Activities.FirstOrDefault(a => a.ActivityId == activityId); _context.Activities.Remove(remove); _context.SaveChanges(); return(RedirectToAction("Home")); }
//public IList<Models.Activity> generateMidWeekSchedule(IList<Models.Group> groups, // IList<Models.Station> stations, IList<Models.SchedulingConstraint> constraints, // IList<Models.TimeSlot> timeSlots, IList<Models.Activity> oldSchedule, // Models.TimeSlot startingTimeSlot) //{ // return null; //} private static void addAssignmentToDailyAssignments(Models.Activity assignment) { int dayNum = assignment.TimeSlot.Start.DayOfYear; if (dailyAssignments.ContainsKey(dayNum)) { if (dailyAssignments[dayNum].ContainsKey(assignment.Group)) { dailyAssignments[dayNum][assignment.Group].Add(assignment.Station); } else { dailyAssignments[dayNum].Add(assignment.Group, new List <Models.Station> { assignment.Station }); } } else { Dictionary <Models.Group, List <Models.Station> > value = new Dictionary <Models.Group, List <Models.Station> >(); value.Add(assignment.Group, new List <Models.Station> { assignment.Station }); dailyAssignments.Add(dayNum, value); } }
public IActionResult ViewActivity(int activityId) { Models.Activity currentActivity = _context.Activities.Include(rez => rez.rsvps).SingleOrDefault(act => act.activityId == activityId); currentActivity.rsvps = _context.Rsvps.Where(rez => rez.activityId == currentActivity.activityId).Include(Rsvp => Rsvp.User).ToList(); _context.SaveChanges(); ViewBag.activityId = activityId; return(View("ViewActivity", currentActivity)); }
public IActionResult Delete(int id) { Models.Activity Target = _context.activities.SingleOrDefault(a => a.ActivityId == id); _context.activities.Remove(Target); _context.SaveChanges(); return(RedirectToAction("Dashboard")); }
private void GetFitnessViewerActivity() { _fvActivity = _unitOfWork.CRUDRepository.GetByKey <Activity>(_activityId, o => o.ActivityType, o => o.Athlete); if (_fvActivity == null) { throw new ArgumentException(string.Format("Activity Not Found: {0}", _activityId.ToString())); } }
public IActionResult Delete(int id) { int?x = HttpContext.Session.GetInt32("ID"); Models.Activity thisActivity = _context.activities.SingleOrDefault(data => data.UserId == (int)x && data.ActivityId == id); _context.activities.Remove(thisActivity); _context.SaveChanges(); return(RedirectToAction("Home")); }
public IActionResult InfoPage(int id) { Models.Activity thisActivity = _context.activities.Include(data => data.User).Include(data => data.Attenders).ThenInclude(data => data.User).SingleOrDefault(data => data.ActivityId == id); // int? x= HttpContext.Session.GetInt32("Id"); // User user = _context.users.SingleOrDefault(u=>u.UserId == (int)x); ViewBag.activities = thisActivity; // ViewBag.user=user; return(View("Infopage")); }
public Models.Activity CreateActivity(Models.Activity activity, String uid) { _PredictType(activity); var createdActivity = _acc.CreateActivity(activity); _UpdateUserAchievements(activity, uid); _UpdateActivityReport(activity, uid); return(createdActivity); }
public async Task <IHttpActionResult> CreateOne([NotNull] ActivityCreateOrUpdateOneRequestDto requestDto) { var userId = User.Identity.GetUserId(); var activity = new Models.Activity { AuthorId = userId, Content = requestDto.Content }; if (Helpers.IsTrustedUrl(requestDto.CoverImage, false)) { activity.CoverImage = requestDto.CoverImage; } var targetPoint = await _dbContext.Points.Where(p => p.Id == requestDto.TargetPointId).SingleOrDefaultAsync(); if (targetPoint == null) { return(this.BadRequest(nameof(requestDto), nameof(requestDto.TargetPointId), Errors.NonExistent)); } targetPoint.LastActivityTime = DateTime.Now; activity.TargetPointId = targetPoint.Id; if (targetPoint.Type == PointType.Game || targetPoint.Type == PointType.Hardware) { activity.AttachedPoints = JsonConvert.SerializeObject(await(from relationship in _dbContext.PointRelationships where relationship.SourcePointId == targetPoint.Id && (relationship.Relationship == PointRelationshipType.Developer || relationship.Relationship == PointRelationshipType.Manufacturer || relationship.Relationship == PointRelationshipType.Series || relationship.Relationship == PointRelationshipType.Tag) select relationship.TargetPointId).Distinct() .Where(id => id != targetPoint.Id).Take(10).ToListAsync()); activity.Rating = requestDto.Rating; } else { activity.AttachedPoints = "[]"; } _dbContext.Activities.Add(activity); activity.SidForAuthor = await _dbContext.Activities.Where(a => a.AuthorId == activity.AuthorId) .Select(a => a.SidForAuthor) .DefaultIfEmpty(0) .MaxAsync() + 1; await _dbContext.SaveChangesAsync(); _mqChannel.SendMessage(string.Empty, MqClientProvider.PushHubRequestQueue, new PushHubRequestDto { Type = ContentPushType.Activity, ContentId = activity.Id }); return(Ok(activity.SidForAuthor)); }
public bool Post(Activity activity) { SqlCommand cmd = new SqlCommand(INSERT, SQLConnectionSingleton.Instance.DbConnection); cmd.Parameters.AddWithValue(" @ActivityName", activity.ActivityName); int rowsAffected = cmd.ExecuteNonQuery(); return(rowsAffected == 1); }
public IActionResult LeaveActivity(int?id) { Models.Activity single = _context.activities.SingleOrDefault(x => x.ActivityId == id); UserActivity anotherfollower = _context.useractivities.SingleOrDefault(my => my.UserId == HttpContext.Session.GetInt32("id") && my.ActivityId == (int)id); _context.useractivities.Remove(anotherfollower); _context.SaveChanges(); return(RedirectToAction("dashboard")); }
public IActionResult DeleteActivity(int id) { Models.Activity thisActivity = db.Activity .Include(Activity => Activity.Creator) .FirstOrDefault(A => A.ActivityId == id); db.Remove(thisActivity); db.SaveChanges(); return(RedirectToAction("Success")); }
public ActionResult Create([Bind(Include = "Id,ModuleId,ActivityTypeId,Name,Description,StartDate,StartTime,EndTime,External")] CreateEditActivityVM activityVM) { Activity activity = new Models.Activity { ModuleId = activityVM.ModuleId, Name = activityVM.Name, Description = activityVM.Description, External = activityVM.External, Type = db.ActivityTypes.Where(t => t.Id == activityVM.ActivityTypeId).FirstOrDefault(), StartDate = activityVM.StartDate.Date.Add(activityVM.StartTime.TimeOfDay), EndDate = activityVM.StartDate.Date.Add(activityVM.EndTime.TimeOfDay) }; int moduleId = 0; if (activity.StartDate > activity.EndDate) { ModelState.AddModelError("EndDate", "The End Date must be later than or equal to the Start Date."); } moduleId = activity.ModuleId; var module = db.Modules.Find(moduleId); var course = db.Courses.Find(module.CourseId); if (activity.StartDate < module.StartDate) { ModelState.AddModelError("StartDate", $"The Start Date of the Activity must occur between {module.StartDate.ToShortDateString()} and {module.EndDate.ToShortDateString()}."); } if (activity.EndDate > module.EndDate) { ModelState.AddModelError("EndDate", $"The End Date of the Activity must occur between {module.StartDate.ToShortDateString()} and {module.EndDate.ToShortDateString()}."); } var siblings = db.Activities.Where(m => m.ModuleId == activity.ModuleId); foreach (var sibling in siblings) { if (Conflicts(activity, sibling)) { ModelState.AddModelError("", $"This activity's date/time conflicts with activity '{sibling.Name}"); break; } } if (ModelState.IsValid) { db.Activities.Add(activity); course.DateChanged = DateTime.Now; db.Entry(course).State = EntityState.Modified; db.SaveChanges(); TempData["Message"] = "Activity Created."; return(RedirectToAction("Manage", "Modules", new { Id = activity.ModuleId })); } ViewBag.ActivityTypeId = new SelectList(db.ActivityTypes, "Id", "TypeName", activityVM.ActivityTypeId); return(View("Create", activityVM)); }
public void HappyPath() { var showActivityCommand = new ShowActivityQuery { ActivityId = 1, User = ClaimsPrincipal.Current }; var mockDbAccess = new Mock<IAllReadyDataAccess>(); var expectedActivity = new Models.Activity { Campaign = new Campaign { Locked = false } }; mockDbAccess.Setup(x => x.GetActivity(showActivityCommand.ActivityId)) .Returns(expectedActivity); var sut = new ShowActivityQueryHandler(mockDbAccess.Object); var viewModel = sut.Handle(showActivityCommand); viewModel.ShouldNotBeNull(); }
public void WhenActivityCampaignIsLockedReturnsNull() { var showActivityCommand = new ShowActivityQuery { ActivityId = 1 }; var mockDbAccess = new Mock<IAllReadyDataAccess>(); var expectedActivity = new Models.Activity { Campaign = new Campaign { Locked = true } }; mockDbAccess.Setup(x => x.GetActivity(showActivityCommand.ActivityId)) .Returns(expectedActivity); var sut = new ShowActivityQueryHandler(mockDbAccess.Object); var viewModel = sut.Handle(showActivityCommand); viewModel.ShouldBeNull(); }
protected override void LoadTestData() { var context = ServiceProvider.GetService<AllReadyContext>(); var htb = new Organization() { Name = "Humanitarian Toolbox", LogoUrl = "http://www.htbox.org/upload/home/ht-hero.png", WebUrl = "http://www.htbox.org", Campaigns = new List<Campaign>() }; var firePrev = new Campaign() { Name = "Neighborhood Fire Prevention Days", ManagingOrganization = htb }; var queenAnne = new Models.Activity() { Id = 1, Name = "Queen Anne Fire Prevention Day", Campaign = firePrev, CampaignId = firePrev.Id, StartDateTime = new DateTime(2015, 7, 4, 10, 0, 0).ToUniversalTime(), EndDateTime = new DateTime(2015, 12, 31, 15, 0, 0).ToUniversalTime(), Location = new Location { Id = 1 }, RequiredSkills = new List<ActivitySkill>(), }; var username1 = $"*****@*****.**"; var username2 = $"*****@*****.**"; var user1 = new ApplicationUser { UserName = username1, Email = username1, EmailConfirmed = true }; context.Users.Add(user1); var user2 = new ApplicationUser { UserName = username2, Email = username2, EmailConfirmed = true }; context.Users.Add(user2); htb.Campaigns.Add(firePrev); context.Organizations.Add(htb); context.Activities.Add(queenAnne); var activitySignups = new List<ActivitySignup>(); activitySignups.Add(new ActivitySignup { Activity = queenAnne, User = user1, SignupDateTime = DateTime.UtcNow }); activitySignups.Add(new ActivitySignup { Activity = queenAnne, User = user2, SignupDateTime = DateTime.UtcNow }); context.ActivitySignup.AddRange(activitySignups); context.SaveChanges(); }
protected override void LoadTestData() { var context = ServiceProvider.GetService<AllReadyContext>(); _user1 = new ApplicationUser { UserName = "******", Name = "John Doe", Email = "*****@*****.**" }; _contact1 = new Contact { Id = 1, FirstName = "Jerry", LastName = "Rodgers", Email = "*****@*****.**", PhoneNumber = "555.555.1234" }; _htb = new Organization { Name = "Humanitarian Toolbox", LogoUrl = "http://www.htbox.org/upload/home/ht-hero.png", WebUrl = "http://www.htbox.org", Campaigns = new List<Campaign>() }; _firePrev = new Campaign { Name = "Neighborhood Fire Prevention Days", ManagingOrganization = _htb, CampaignContacts = new List<CampaignContact>() }; _firePrev.CampaignContacts.Add(new CampaignContact { Campaign = _firePrev, Contact = _contact1, ContactType = (int)ContactTypes.Primary }); _htb.Campaigns.Add(_firePrev); _queenAnne = new Models.Activity { Id = 1, Name = "Queen Anne Fire Prevention Day", Campaign = _firePrev, CampaignId = _firePrev.Id, StartDateTime = new DateTime(2015, 7, 4, 10, 0, 0).ToUniversalTime(), EndDateTime = new DateTime(2015, 12, 31, 15, 0, 0).ToUniversalTime(), Location = new Location { Id = 1 }, RequiredSkills = new List<ActivitySkill>(), Tasks = new List<AllReadyTask>(), UsersSignedUp = new List<ActivitySignup> { new ActivitySignup { Id = 1, PreferredEmail = "*****@*****.**", PreferredPhoneNumber = "(555)555-1234", User = _user1 } } }; _task1 = new AllReadyTask { Id = 1, Activity = _queenAnne, Name = "Task 1", StartDateTime = new DateTime(2015, 7, 4, 10, 0, 0).ToUniversalTime(), EndDateTime = new DateTime(2015, 12, 31, 15, 0, 0).ToUniversalTime(), Organization = _htb }; _task1.AssignedVolunteers = new List<TaskSignup> { new TaskSignup { Id = 1, User = _user1, Task = _task1, Status = "Assigned", StatusDateTimeUtc = new DateTime(2015, 7, 4, 10, 0, 0).ToUniversalTime() } }; _queenAnne.Tasks.Add(_task1); context.Users.Add(_user1); context.Contacts.Add(_contact1); context.Organizations.Add(_htb); context.Activities.Add(_queenAnne); context.SaveChanges(); }
public static IEnumerable<Models.Activity> getSchedule(IEnumerable<Models.Group> groups, IEnumerable<Models.Station> stations, IEnumerable<Models.SchedulingConstraint> constraints, IEnumerable<Models.TimeSlot> slots, IEnumerable<Models.Activity> oldSchedule, Models.TimeSlot startingTimeSlot) { ZeroOut(); List<Models.Activity> schedule = new List<Models.Activity>(); AllGroups = new List<Group>(); AllStations = new List<Station>(); AllConstraints = new List<Constraint>(); int i,j,k; convertTimeSlotsToDaySlots(slots); List<Models.Group> tmpallGroups = new List<Models.Group>(groups.ToArray()); List<Models.Station> tmpallStations = new List<Models.Station>(stations.ToArray()); List<Models.TimeSlot> tmpallSlots = new List<Models.TimeSlot>(slots.ToArray()); foreach (Models.Station s in stations) AllStations.Add(new Station(s.ID, s.Name, s.Capacity, s.Category, s.isActivityPin, timeSlotsToAvailability(s.AvailableTimeSlots))); foreach (Models.Group x in groups) { int p1 = -1, p2 = -1, p3 = -1, p4 = -1, p5 = -1; for (i = 0; i < AllStations.Count; i++) { if (x.Preference1 != null && x.Preference1.ID == AllStations[i].ID) p1 = i; if (x.Preference2 != null && x.Preference2.ID == AllStations[i].ID) p2 = i; if (x.Preference3 != null && x.Preference3.ID == AllStations[i].ID) p3 = i; if (x.Preference4 != null && x.Preference4.ID == AllStations[i].ID) p4 = i; if (x.Preference5 != null && x.Preference5.ID == AllStations[i].ID) p5 = i; } AllGroups.Add(new Group(x.ID, x.Name, x.Type.ID, p1, p2, p3, p4, p5)); } foreach (Models.SchedulingConstraint c in constraints) { Group g = AllGroups[0]; Station s = AllStations[0]; for (i = 0; i < AllStations.Count; i++) if (AllStations[i].ID == c.Station.ID) s = AllStations[i]; if (c.Group != null) { for (i = 0; i < AllGroups.Count; i++) if (AllGroups[i].ID == c.Group.ID) g = AllGroups[i]; AllConstraints.Add(new Constraint(g, s, c.VisitNum)); } else if (c.GroupType != null) { for (i = 0; i < AllGroups.Count; i++) if (c.GroupType.ID == AllGroups[i].Rank) AllConstraints.Add(new Constraint(g, s, c.VisitNum)); } else if( c.Group == null && c.GroupType == null) for (i = 0; i < AllGroups.Count; i++) AllConstraints.Add(new Constraint(AllGroups[i], s, c.VisitNum)); } KeyValuePair<int, int> startDaySlot = timeSlotToDaySlot(startingTimeSlot); if (startDaySlot.Key == 1 && startDaySlot.Value == 1) generateNewScheduleFromScracth = true; else generateNewScheduleFromScracth = false; addOldScheduleToNewScheduleTillTimeSlot(oldSchedule, startDaySlot.Key, startDaySlot.Value); Schedule(startDaySlot.Key, startDaySlot.Value); /* Dictionary<string, string>[,] Q = new Dictionary<string, string>[10, 20]; for(i=0;i<10;i++) for(j=0;j<20;j++) { Q[i,j] = new Dictionary<string,string>(); foreach (KeyValuePair<int, int> P in masterSchedule[i, j]) { Q[i, j].Add(AllGroups[P.Key].Name, AllStations[P.Value].Name); } } * */ for (i = 1; i <= 5; i++) { for (j = 1; j <= nSlots[i]; j++) { int slotID = daySlotToTimeSlot(i, j); Models.TimeSlot T = new Models.TimeSlot(); foreach (Models.TimeSlot t in slots) if (t.ID == slotID) T = t; foreach (KeyValuePair<int, int> P in masterSchedule[i, j]) { Models.Activity A = new Models.Activity(); A.Group = tmpallGroups[P.Key]; A.Station = tmpallStations[P.Value]; A.TimeSlot = T; schedule.Add(A); } } } return schedule; }