public HttpResponseMessage Register(RegisterRequest registerRequest)
        {
            // Create the new User object.
            //TODO: Encrypt the password.

            if (registerRequest.FirstName == "" || registerRequest.LastName == "" || registerRequest.Username == "" || registerRequest.Password == "")
            {
                // If any of the parameters are empty, throw an error.
                // TODO Maybe don't user forbidden status here.
                return(Request.CreateResponse(HttpStatusCode.Forbidden, "Registration Failed - Empty Parameters."));
            }

            // Check if there is already a user with this username.
            if (_Database.Users.Any(usr => usr.Username == registerRequest.Username))
            {
                // TODO Maybe don't user forbidden status here.
                System.Diagnostics.Debug.WriteLine("Registration failed!!!!! Username in use.");
                return(Request.CreateResponse(HttpStatusCode.Conflict, "Registration Failed - Username in use."));
            }

            User newUser = new User {
                FirstName = registerRequest.FirstName, LastName = registerRequest.LastName, Username = registerRequest.Username, Password = registerRequest.Password
            };

            System.Diagnostics.Debug.WriteLine("Adding a new user...");

            // Add the user to the database.
            _Database.Users.Add(newUser);
            _Database.SaveChanges();

            return(Request.CreateResponse(HttpStatusCode.OK));
        }
        public HttpResponseMessage Add([FromBody] ActivityLogRequest activityLogRequest)
        {
            // Get the UserId of the logged in user.
            int userId = int.Parse(User.Identity.GetUserId());

            //TODO Verify that a valid activity and valid user have been passed.
            User     user     = (User)_Database.Users.SingleOrDefault(usr => usr.UserId == userId);
            Activity activity = (Activity)_Database.Activities.SingleOrDefault(act => act.ActivityId == activityLogRequest.ActivityId);

            // Create a new ActivityLog entry in the database.
            ActivityLog newLog = new ActivityLog {
                Activity = activity, User = user, StartTime = activityLogRequest.StartTime, EndTime = activityLogRequest.EndTime
            };

            System.Diagnostics.Debug.WriteLine("Adding a new ActivityLog...");

            // Add the ActivityLog to the database.
            _Database.ActivityLogs.Add(newLog);
            _Database.SaveChanges();

            return(Request.CreateResponse(HttpStatusCode.OK));
        }
 // Fills database with test data.
 private static void Seed(ActivityTrackerContext context)
 {
     context.Roles.AddRange(
         new Role
     {
         Id   = 1,
         Name = "software engineer"
     },
         new Role
     {
         Id   = 2,
         Name = "software architect"
     },
         new Role
     {
         Id   = 3,
         Name = "team lead"
     }
         );
     context.ActivityTypes.AddRange(
         new ActivityType
     {
         Id   = 1,
         Name = "regular work"
     },
         new ActivityType
     {
         Id   = 2,
         Name = "overtime"
     }
         );
     context.Projects.AddRange(
         new Project
     {
         Id        = 1,
         Name      = "Ableton",
         DateStart = DateTime.Today,
         DateEnd   = DateTime.Today.AddDays(14)
     },
         new Project
     {
         Id        = 2,
         Name      = "Logic Pro",
         DateStart = DateTime.Today,
         DateEnd   = DateTime.Today.AddDays(10)
     }
         );
     context.Employees.AddRange(
         new Employee
     {
         Id          = 1,
         Name        = "Mykola",
         Sex         = Sex.Male,
         DateOfBirth = DateTime.Today.AddYears(-20)
     },
         new Employee
     {
         Id          = 2,
         Name        = "Sasha",
         Sex         = Sex.Female,
         DateOfBirth = DateTime.Today.AddYears(-20)
     }
         );
     context.Activities.AddRange(
         new Activity
     {
         Id             = 1,
         Date           = DateTime.Parse("2020-08-03"),
         HoursOfWork    = 10,
         EmployeeId     = 1,
         ProjectId      = 1,
         RoleId         = 1,
         ActivityTypeId = 1
     },
         new Activity
     {
         Id             = 2,
         Date           = DateTime.Parse("2020-08-03"),
         HoursOfWork    = 5,
         EmployeeId     = 1,
         ProjectId      = 2,
         RoleId         = 2,
         ActivityTypeId = 2
     },
         new Activity
     {
         Id             = 3,
         Date           = DateTime.Parse("2020-08-09"),
         HoursOfWork    = 7,
         EmployeeId     = 1,
         ProjectId      = 2,
         RoleId         = 3,
         ActivityTypeId = 1
     },
         new Activity
     {
         Id             = 4,
         Date           = DateTime.Parse("2020-08-10"),
         HoursOfWork    = 7,
         EmployeeId     = 1,
         ProjectId      = 2,
         RoleId         = 3,
         ActivityTypeId = 1
     }
         );
     context.SaveChanges();
 }