Ejemplo n.º 1
0
        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 }));
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
Archivo: Info.cs Proyecto: Zorzin/KCK
        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;
        }
Ejemplo n.º 4
0
        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));
            }
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        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));
        }
Ejemplo n.º 8
0
        //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);
        }
Ejemplo n.º 9
0
        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));
        }
Ejemplo n.º 10
0
        /// <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);
        }
Ejemplo n.º 11
0
        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"));
            }
        }
Ejemplo n.º 12
0
        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;
        }
Ejemplo n.º 13
0
 public IActionResult Delete(int ActivityId)
 {
     Models.Activity toDelete = _context.Activity.SingleOrDefault(d => d.ActivityId == ActivityId);
     _context.Activity.Remove(toDelete);
     _context.SaveChanges();
     return(RedirectToAction("Index"));
 }
Ejemplo n.º 14
0
        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);
        }
Ejemplo n.º 15
0
        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);
        }
Ejemplo n.º 16
0
 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);
 }
Ejemplo n.º 17
0
        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);
        }
Ejemplo n.º 18
0
 public IActionResult DeleteActivity(int activityId)
 {
     Models.Activity remove = _context.Activities.FirstOrDefault(a => a.ActivityId == activityId);
     _context.Activities.Remove(remove);
     _context.SaveChanges();
     return(RedirectToAction("Home"));
 }
Ejemplo n.º 19
0
        //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);
            }
        }
Ejemplo n.º 20
0
 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));
 }
Ejemplo n.º 21
0
        public IActionResult Delete(int id)
        {
            Models.Activity Target = _context.activities.SingleOrDefault(a => a.ActivityId == id);

            _context.activities.Remove(Target);
            _context.SaveChanges();
            return(RedirectToAction("Dashboard"));
        }
Ejemplo n.º 22
0
        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()));
            }
        }
Ejemplo n.º 23
0
        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"));
        }
Ejemplo n.º 24
0
 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"));
 }
Ejemplo n.º 25
0
        public Models.Activity CreateActivity(Models.Activity activity, String uid)
        {
            _PredictType(activity);
            var createdActivity = _acc.CreateActivity(activity);

            _UpdateUserAchievements(activity, uid);
            _UpdateActivityReport(activity, uid);
            return(createdActivity);
        }
Ejemplo n.º 26
0
        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));
        }
Ejemplo n.º 27
0
        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);
        }
Ejemplo n.º 28
0
        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"));
        }
Ejemplo n.º 29
0
 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"));
 }
Ejemplo n.º 30
0
        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;
        }