public IActionResult Login(LoginUser user)
        {
            var test = dbContext.Users.ToList();

            if (ModelState.IsValid)
            {
                ActivityUser toLogin = dbContext.Users.FirstOrDefault(u => u.Email == user.EmailAttempt);
                if (toLogin == null)
                {
                    ModelState.AddModelError("EmailAttempt", "Invalid Email/Password");
                    return(View("Index"));
                }
                PasswordHasher <LoginUser> hasher = new PasswordHasher <LoginUser>();
                var result = hasher.VerifyHashedPassword(user, toLogin.Password, user.PasswordAttempt);
                if (result == PasswordVerificationResult.Failed)
                {
                    ModelState.AddModelError("EmailAttempt", "Invalid Email/Password");
                    return(View("Index"));
                }
                // Log user into session
                HttpContext.Session.SetInt32("userId", toLogin.UserId);
                return(RedirectToAction("Index", "Activity"));
            }
            return(View("Index"));
        }
        public async Task <IActionResult> CreateActivityUser([FromBody] ActivityUser activityUser)
        {
            await _context.ActivityUsers.AddAsync(activityUser);

            await _context.SaveChangesAsync();

            return(Ok(activityUser));
        }
Beispiel #3
0
        public ActionResult DeleteConfirmed(int id)
        {
            ActivityUser activityUser = db.ActivityUsers.Find(id);

            db.ActivityUsers.Remove(activityUser);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
        public ActionResult Create(Guid id)
        {
            var item = new ActivityUser {
                ActivityId = id
            };

            _iActivityUserService.Save(null, item);
            _unitOfWork.Commit();
            return(RedirectToAction("Index", "Activity"));
        }
        public IActionResult LeaveActivity(int aId)
        {
            int?         id     = HttpContext.Session.GetInt32("UserId");
            int          uid    = Convert.ToInt32(id);
            ActivityUser mjoins = _context.ActivityUser.SingleOrDefault(w => w.ActivityId == aId && w.UserId == uid);

            _context.ActivityUser.Remove(mjoins);
            _context.SaveChanges();
            return(RedirectToAction("dashboard"));
        }
Beispiel #6
0
 public ActionResult Edit([Bind(Include = "Id,FirstName,LastName,ActivityType,MobileNumber,Comments,Email,CreatedDate,UpdatedDate")] ActivityUser activityUser)
 {
     if (ModelState.IsValid)
     {
         db.Entry(activityUser).State = EntityState.Modified;
         activityUser.UpdatedDate     = DateTime.Now;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(activityUser));
 }
Beispiel #7
0
        public static void ActivitySignUp(Transfer transfer)
        {
            ActivityUser activityUser = new ActivityUser();

            activityUser.ActivityId = transfer.MasterId;
            activityUser.IsJoined   = false;
            activityUser.RowState   = RowState.Added;
            activityUser.RowVersion = 0;
            activityUser.UserId     = transfer.TargetUserId;
            ActivityHelper.ActivitySignUp(activityUser);
        }
Beispiel #8
0
        /// <summary>
        /// 活动报名
        /// </summary>
        /// <returns></returns>
        public static Response ActivitySignUp(ActivityUser activityUser)
        {
            List <EntityBase> entities = new List <EntityBase>();

            entities.Add(activityUser);
            if (activityUser.RowState == RowState.Added)
            {
                activityUser.TrySetNewEntity();
            }

            return(DbContext.GetInstance().Execute(CommandHelper.CreateSave(entities)));
        }
Beispiel #9
0
        private static ActivityUser createActivityUser(Activity activity)
        {
            ActivityUser user = new ActivityUser();

            user.SetNewId();
            user.SetCreateDate();
            user.SetRowAdded();
            user.ActivityId = activity.Id;
            user.UserId     = activity.CreatorId;
            user.IsJoined   = false;
            user.Remark     = "活动负责人";
            return(user);
        }
        public IActionResult JoinActivity(int aId)
        {
            int?         id   = HttpContext.Session.GetInt32("UserId");
            int          uid  = Convert.ToInt32(id);
            ActivityUser join = new ActivityUser()
            {
                UserId     = uid,
                ActivityId = aId
            };

            _context.ActivityUser.Add(join);
            _context.SaveChanges();
            return(RedirectToAction("dashboard"));
        }
Beispiel #11
0
        // GET: ActivityUsers/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ActivityUser activityUser = db.ActivityUsers.Find(id);

            if (activityUser == null)
            {
                return(HttpNotFound());
            }
            return(View(activityUser));
        }
        /// <summary>
        /// 添加活动
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public async Task <IActionResult> AddActivity(Guid id)
        {
            if (id == Guid.Empty)
            {
                return(Json(new { isOK = false, message = "请选择活动" }));
            }
            var activity = await _activityTermRepository.GetAll().Include(x => x.User).Where(x => x.ID == id).FirstOrDefaultAsync();

            if (activity == null)
            {
                return(Json(new { isOK = false, message = "活动选择失败,不存在改活动" }));
            }
            var user = User.Claims.FirstOrDefault();

            if (user == null)
            {
                return(Json(new { isOK = false, message = "请登录!!!" }));
            }
            var userInfo = await _userManager.FindByIdAsync(user.Value);

            var entity = _activityUserExtension.GetAll().Include(x => x.ActivityTerm).Include(x => x.ActivityTerm.User)
                         .Where(x => x.User.Id == user.Value && x.ActivityTermId == id).FirstOrDefault();

            if (entity != null)
            {
                return(Json(new { isOK = false, message = "你已经加入该活动,不可重复加入" }));
            }
            ;
            var activityUser = new ActivityUser()
            {
                User           = userInfo,
                ActivityTermId = id
            };
            var isOK = await _activityUserRepository.AddOrEditAndSaveAsyn(activityUser);

            await AddMessageNotification(activity.User, id, activity.Name, "活动新成员:" + userInfo.Name, BusinessEmergencyEnum.一般);

            if (isOK)
            {
                return(Json(new { isOK = true, message = "添加成功" }));
            }
            else
            {
                return(Json(new { isOK = false, message = "添加失败" }));
            }
        }
        public IActionResult Create(ActivityUser user)
        {
            if (ModelState.IsValid)
            {
                if (dbContext.Users.Any(o => o.Email == user.Email))
                {
                    ModelState.AddModelError("Email", "Email already in use");
                    return(View("Index"));
                }

                PasswordHasher <ActivityUser> hasher = new PasswordHasher <ActivityUser>();
                user.Password = hasher.HashPassword(user, user.Password);

                var newUser = dbContext.Users.Add(user).Entity;
                dbContext.SaveChanges();

                HttpContext.Session.SetInt32("userId", newUser.UserId);

                return(RedirectToAction("Index", "Activity"));
            }

            return(View("Index"));
        }
        public async Task <ActionResult> OnPostImportAsync()
        {
            IFormFile             file        = Request.Form.Files[0];
            string                folderName  = "Upload";
            string                webRootPath = _hostingEnvironment.WebRootPath;
            string                newPath     = Path.Combine(webRootPath, folderName);
            List <LoginViewModel> UsersList   = new List <LoginViewModel>();

            if (!Directory.Exists(newPath))
            {
                Directory.CreateDirectory(newPath);
            }
            if (file.Length > 0)
            {
                string sFileExtension = Path.GetExtension(file.FileName).ToLower();
                ISheet sheet;
                string fullPath = Path.Combine(newPath, file.FileName);
                using (var stream = new FileStream(fullPath, FileMode.Create))
                {
                    file.CopyTo(stream);
                    stream.Position = 0;
                    if (sFileExtension == ".xls")
                    {
                        HSSFWorkbook hssfwb = new HSSFWorkbook(stream); //This will read the Excel 97-2000 formats
                        sheet = hssfwb.GetSheetAt(0);                   //get first sheet from workbook
                    }
                    else
                    {
                        XSSFWorkbook hssfwb = new XSSFWorkbook(stream); //This will read 2007 Excel format
                        sheet = hssfwb.GetSheetAt(0);                   //get first sheet from workbook
                    }
                    IRow     headerRow = sheet.GetRow(0);               //Get Header Row
                    int      cellCount = headerRow.LastCellNum;
                    string[] arr       = new string[2];

                    //string emailCol = null;
                    for (int j = 0; j < cellCount; j++)
                    {
                        NPOI.SS.UserModel.ICell cell = headerRow.GetCell(j);
                        if (cell == null || string.IsNullOrWhiteSpace(cell.ToString()))
                        {
                            continue;
                        }
                        arr[j] = cell.ToString();
                    }
                    UsersList.Add(new LoginViewModel {
                        UserName = arr[0], Email = arr[0], Password = arr[1]
                    });
                    for (int i = (sheet.FirstRowNum + 1); i <= sheet.LastRowNum; i++) //Read Excel File
                    {
                        IRow row = sheet.GetRow(i);
                        if (row == null)
                        {
                            continue;
                        }
                        if (row.Cells.All(d => d.CellType == CellType.Blank))
                        {
                            continue;
                        }
                        for (int j = row.FirstCellNum; j < cellCount; j++)
                        {
                            if (row.GetCell(j) != null)
                            {
                                arr[j] = row.GetCell(j).ToString();
                            }
                        }
                        UsersList.Add(new LoginViewModel {
                            UserName = arr[0], Email = arr[0], Password = arr[1]
                        });
                    }
                }
            }

            ActivityUser   user;
            IdentityResult result;

            foreach (LoginViewModel i in UsersList)
            {
                user = new ActivityUser()
                {
                    UserName = i.Email, Email = i.Email
                };

                result = await _userManager.CreateAsync(user, i.Password);
            }
            return(Ok());
        }
Beispiel #15
0
        public static void Initialize(FireteamDbContext context)
        {
            context.Database.EnsureCreated();

            if (context.Users.Any())
            {
                return; // Context has already been seeded
            }

            var users = new User[]
            {
                new User()
                {
                    ID                = 1,
                    UserName          = "******",
                    FirstName         = "Leroy",
                    LastName          = "Jenkins",
                    CanShowInSearches = true,
                    Email             = "*****@*****.**",
                    Password          = "******",
                    Salt              = "lkajsdlkajsdlkjasd",
                    TimeZone          = "Central Time",
                    Birthday          = DateTime.Parse("6/15/1983"),
                    Created           = DateTime.Now,
                    IsDeleted         = false
                },
                new User()
                {
                    ID                = 2,
                    UserName          = "******",
                    FirstName         = "Darth",
                    LastName          = "Maul",
                    CanShowInSearches = true,
                    Email             = "*****@*****.**",
                    Password          = "******",
                    Salt              = "lkajsdlkajsdlkjasd",
                    TimeZone          = "Pacific Time",
                    Birthday          = DateTime.Parse("9/02/1972"),
                    Created           = DateTime.Now,
                    IsDeleted         = false
                },
                new User()
                {
                    ID                = 3,
                    UserName          = "******",
                    FirstName         = "Kate",
                    LastName          = "Beckinsale",
                    CanShowInSearches = false,
                    Email             = "*****@*****.**",
                    Password          = "******",
                    Salt              = "lkajsdlkajsdlkjasd",
                    TimeZone          = "Eastern Time",
                    Birthday          = DateTime.Parse("8/06/1973"),
                    Created           = DateTime.Now,
                    IsDeleted         = false
                }
            };

            foreach (var user in users)
            {
                context.Users.Add(user);
            }

            var userFriends = new UserFriend[]
            {
                new UserFriend()
                {
                    ID = 1, UserID = 1, FriendID = 2, CanAddToActivities = true, Created = DateTime.Now, IsDeleted = false
                },
                new UserFriend()
                {
                    ID = 2, UserID = 1, FriendID = 3, CanAddToActivities = false, Created = DateTime.Now, IsDeleted = false
                },
                new UserFriend()
                {
                    ID = 3, UserID = 3, FriendID = 1, CanAddToActivities = true, Created = DateTime.Now, IsDeleted = false
                },
                new UserFriend()
                {
                    ID = 4, UserID = 2, FriendID = 1, CanAddToActivities = true, Created = DateTime.Now, IsDeleted = false
                }
            };

            foreach (var userFriend in userFriends)
            {
                context.UserFriends.Add(userFriend);
            }
            context.SaveChanges();


            context.SaveChanges();

            var consoleModels = new ConsoleModel[]
            {
                new ConsoleModel()
                {
                    ID           = 1,
                    Name         = "Playstation 4",
                    Manufacturer = "Sony",
                    Created      = DateTime.Now,
                    IsDeleted    = false
                },
                new ConsoleModel()
                {
                    ID           = 2,
                    Name         = "Playstation 3",
                    Manufacturer = "Sony",
                    Created      = DateTime.Now,
                    IsDeleted    = false
                },
                new ConsoleModel()
                {
                    ID           = 3,
                    Name         = "PS Vita",
                    Manufacturer = "Sony",
                    Created      = DateTime.Now,
                    IsDeleted    = false
                },
                new ConsoleModel()
                {
                    ID           = 4,
                    Name         = "XBox 360",
                    Manufacturer = "Microsoft",
                    Created      = DateTime.Now,
                    IsDeleted    = false
                },
                new ConsoleModel()
                {
                    ID           = 5,
                    Name         = "XBox One",
                    Manufacturer = "Microsoft",
                    Created      = DateTime.Now,
                    IsDeleted    = false
                },
                new ConsoleModel()
                {
                    ID           = 6,
                    Name         = "Wii",
                    Manufacturer = "Nintendo",
                    Created      = DateTime.Now,
                    IsDeleted    = false
                },
                new ConsoleModel()
                {
                    ID           = 7,
                    Name         = "Wii U",
                    Manufacturer = "Nintendo",
                    Created      = DateTime.Now,
                    IsDeleted    = false
                },
                new ConsoleModel()
                {
                    ID           = 8,
                    Name         = "Switch",
                    Manufacturer = "Nintendo",
                    Created      = DateTime.Now,
                    IsDeleted    = false
                },
                new ConsoleModel()
                {
                    ID           = 9,
                    Name         = "DS/DSXL/3DS/2DS",
                    Manufacturer = "Nintendo",
                    Created      = DateTime.Now,
                    IsDeleted    = false
                }
            };

            foreach (var consoleModel in consoleModels)
            {
                context.ConsoleModels.Add(consoleModel);
            }
            context.SaveChanges();

            var groupTypes = new GroupType[]
            {
                new GroupType()
                {
                    ID          = 1,
                    Name        = "Clan",
                    Description = "A group of team mates with a loose but solid leadership structure",
                    Created     = DateTime.Now,
                    IsDeleted   = false
                },
                new GroupType()
                {
                    ID          = 2,
                    Name        = "Guild",
                    Description =
                        "A group of team mates with a common set of skills that often teach or train newcomers",
                    Created   = DateTime.Now,
                    IsDeleted = false
                },
                new GroupType()
                {
                    ID          = 3,
                    Name        = "Friends",
                    Description = "A group of friends that enjoy playing games together",
                    Created     = DateTime.Now,
                    IsDeleted   = false
                }
            };

            foreach (var groupType in groupTypes)
            {
                context.GroupTypes.Add(groupType);
            }
            context.SaveChanges();

            var groups = new Group[]
            {
                new Group()
                {
                    ID           = 1,
                    Name         = "Master Blasters",
                    Description  = "Two men enter, one man leaves...",
                    GroupTypeID  = 1,
                    IsHidden     = false,
                    IsInviteOnly = true,
                    Created      = DateTime.Now,
                    IsDeleted    = false
                },
                new Group()
                {
                    ID          = 2,
                    Name        = "All_the_victories",
                    Description =
                        "A dedicated guild of PvP players who seek to hone their craft and help others learn it as well",
                    GroupTypeID  = 2,
                    IsHidden     = false,
                    IsInviteOnly = false,
                    Created      = DateTime.Now,
                    IsDeleted    = false
                },
                new Group()
                {
                    ID          = 3,
                    Name        = "Colpeck Game Night Friends",
                    Description =
                        "A group of friends that meet at the Colpecks to play silly games and get a little drunk",
                    GroupTypeID  = 3,
                    IsHidden     = false,
                    IsInviteOnly = true,
                    Created      = DateTime.Now,
                    IsDeleted    = false
                },
                new Group()
                {
                    ID          = 4,
                    Name        = "Death Dealers",
                    Description =
                        "We wage a war that has raged on for over a thousand years.  Only Vampires need apply.",
                    GroupTypeID  = 1,
                    IsHidden     = false,
                    IsInviteOnly = true,
                    Created      = DateTime.Now,
                    IsDeleted    = false
                }
            };

            foreach (var group in groups)
            {
                context.Groups.Add(group);
            }
            context.SaveChanges();

            var userGroups = new UserGroup[]
            {
                new UserGroup()
                {
                    ID        = 1,
                    GroupID   = 1,
                    UserID    = 2,
                    Created   = DateTime.Now,
                    IsDeleted = false
                },
                new UserGroup()
                {
                    ID        = 2,
                    GroupID   = 2,
                    UserID    = 1,
                    Created   = DateTime.Now,
                    IsDeleted = false
                },
                new UserGroup()
                {
                    ID        = 3,
                    GroupID   = 2,
                    UserID    = 1,
                    Created   = DateTime.Now,
                    IsDeleted = false
                },
                new UserGroup()
                {
                    ID        = 4,
                    GroupID   = 3,
                    UserID    = 3,
                    Created   = DateTime.Now,
                    IsDeleted = false
                }
            };

            foreach (var userGroup in userGroups)
            {
                context.UserGroups.Add(userGroup);
            }
            context.SaveChanges();

            var groupUsers = new GroupUser[]
            {
                new GroupUser()
                {
                    ID = 1, GroupID = 4, UserID = 3, IsDeleted = false, IsGroupLeadership = true, Created = DateTime.Now
                },
                new GroupUser()
                {
                    ID = 2, GroupID = 1, UserID = 2, IsDeleted = false, IsGroupLeadership = true, Created = DateTime.Now
                },
                new GroupUser()
                {
                    ID = 3, GroupID = 2, UserID = 1, IsDeleted = false, IsGroupLeadership = true, Created = DateTime.Now
                },
                new GroupUser()
                {
                    ID = 4, GroupID = 2, UserID = 2, IsDeleted = false, IsGroupLeadership = false, Created = DateTime.Now
                }
            };

            foreach (var groupUser in groupUsers)
            {
                context.GroupUsers.Add(groupUser);
            }
            context.SaveChanges();

            var activityTypes = new ActivityType[]
            {
                new ActivityType()
                {
                    ID          = 1,
                    Name        = "Mission",
                    Description = "An in-game mission requring multi-player participation",
                    Created     = DateTime.Now,
                    IsDeleted   = false
                },
                new ActivityType()
                {
                    ID          = 2,
                    Name        = "Quest",
                    Description = "A multi-part quest line that encompasses several missions",
                    Created     = DateTime.Now,
                    IsDeleted   = false
                },
                new ActivityType()
                {
                    ID          = 3,
                    Name        = "Raid / Multi-player instance",
                    Description =
                        "An activity that requires specific fireteam composition and planning, usually granting end-game awards",
                    Created   = DateTime.Now,
                    IsDeleted = false
                },
                new ActivityType()
                {
                    ID          = 4,
                    Name        = "Player vs Player (PVP)",
                    Description =
                        "PvP activities like \"Death Matches\" as well as objective based activities like \"Capture the Flag\"",
                    Created   = DateTime.Now,
                    IsDeleted = false
                }
            };

            foreach (var activityType in activityTypes)
            {
                context.ActivityTypes.Add(activityType);
            }

            context.SaveChanges();

            var gameTypes = new GameType[]
            {
                new GameType()
                {
                    ID          = 1,
                    Name        = "Multiplayer FPS",
                    Description = "A multiplayer online first-person shooter",
                    Created     = DateTime.Now,
                    IsDeleted   = false
                },
                new GameType()
                {
                    ID          = 2,
                    Name        = "PvP Arena",
                    Description = "A game that pits teams of players against each other who then battle for supremacy",
                    Created     = DateTime.Now,
                    IsDeleted   = false
                }
            };

            foreach (var gameType in gameTypes)
            {
                context.GameTypes.Add(gameType);
            }
            context.SaveChanges();

            var games = new Game[]
            {
                new Game()
                {
                    ID          = 1,
                    Title       = "Destiny",
                    Description =
                        "Guardians, the last hope of the light, battle darkness in and around the last city on Earth.",
                    GameTypeID = 1,
                    Publisher  = "Activision",
                    Created    = DateTime.Now,
                    IsDeleted  = false
                },
                new Game()
                {
                    ID          = 2,
                    Title       = "Overwatch",
                    Description =
                        "In a time of global crisis, an international task force of heroes banded together to restore peace to a war-torn world: OVERWATCH.",
                    GameTypeID = 1,
                    Publisher  = "Blizzard",
                    Created    = DateTime.Now,
                    IsDeleted  = false
                },
                new Game()
                {
                    ID          = 3,
                    Title       = "Mass Effect: Andromeda",
                    Description =
                        "Chart your own course in a dangerous new galaxy. Unravel the mysteries of the Andromeda galaxy as you discover rich, alien worlds in the search for humanity's new home",
                    GameTypeID = 1,
                    Publisher  = "Electronic Arts",
                    Created    = DateTime.Now,
                    IsDeleted  = false
                }
            };

            foreach (var game in games)
            {
                context.Games.Add(game);
            }
            context.SaveChanges();

            var platforms = new Platform[]
            {
                new Platform()
                {
                    ID        = 1,
                    Name      = "Playstation",
                    Created   = DateTime.Now,
                    IsDeleted = false
                },
                new Platform()
                {
                    ID        = 2,
                    Name      = "XBox",
                    Created   = DateTime.Now,
                    IsDeleted = false
                },
                new Platform()
                {
                    ID        = 3,
                    Name      = "Nintendo",
                    Created   = DateTime.Now,
                    IsDeleted = false
                },
                new Platform()
                {
                    ID        = 4,
                    Name      = "PC",
                    Created   = DateTime.Now,
                    IsDeleted = false
                }
            };

            foreach (var platform in platforms)
            {
                context.Platforms.Add(platform);
            }
            context.SaveChanges();

            var gamePlatforms = new GamePlatform[]
            {
                new GamePlatform()
                {
                    ID = 1, GameID = 1, PlatformID = 1, Created = DateTime.Now, IsDeleted = false
                },
                new GamePlatform()
                {
                    ID = 2, GameID = 1, PlatformID = 2, Created = DateTime.Now, IsDeleted = false
                },
                new GamePlatform()
                {
                    ID = 3, GameID = 1, PlatformID = 4, Created = DateTime.Now, IsDeleted = false
                }
            };

            foreach (var gamePlatform in gamePlatforms)
            {
                context.GamePlatforms.Add(gamePlatform);
            }
            context.SaveChanges();

            var platformAccounts = new PlatformAccount[]
            {
                new PlatformAccount()
                {
                    ID = 1, ConsoleModelID = 1, UserID = 3, PlatformID = 1, GamerTag = "selene", Created = DateTime.Now, IsDeleted = false
                },
                new PlatformAccount()
                {
                    ID = 2, ConsoleModelID = 2, UserID = 3, PlatformID = 1, GamerTag = "selene", Created = DateTime.Now, IsDeleted = false
                },
                new PlatformAccount()
                {
                    ID = 3, ConsoleModelID = 3, UserID = 3, PlatformID = 1, GamerTag = "selene", Created = DateTime.Now, IsDeleted = false
                },
                new PlatformAccount()
                {
                    ID = 4, ConsoleModelID = 4, UserID = 2, PlatformID = 2, GamerTag = "XxDarthDudexX", Created = DateTime.Now, IsDeleted = false
                },
                new PlatformAccount()
                {
                    ID = 5, UserID = 1, PlatformID = 4, GamerTag = "lroy_JEENKINS", Created = DateTime.Now, IsDeleted = false
                }
            };

            foreach (var platformAccount in platformAccounts)
            {
                context.PlatformAccounts.Add(platformAccount);
            }
            context.SaveChanges();

            var activities = new Activity[]
            {
                new Activity()
                {
                    ID             = 1,
                    ActivityTypeID = 1,
                    AvailableSlots = 2,
                    Description    = "Black Spindle mission.  Come have a chill run and get things done!  Looking for a good team to get through this.",
                    Duration       = "00:02:00",
                    GameID         = 1,
                    UserID         = 2,
                    Requirements   = "Must have Y4 Ice Breaker... just cuz.",
                    TimeZone       = "Central Time",
                    StartTime      = DateTime.Parse("5/02/2017 01:30:00 PM"),
                    IsHidden       = false,
                    IsInviteOnly   = false,
                    Created        = DateTime.Now,
                    IsDeleted      = false
                },
                new Activity()
                {
                    ID             = 2,
                    ActivityTypeID = 2,
                    AvailableSlots = 2,
                    Description    = "Trying to get this stupid exotic quest done.  Need two to run some strikes with.",
                    Duration       = "00:01:30",
                    GameID         = 1,
                    UserID         = 2,
                    Requirements   = "Need a Hunter and a Warlock.  I'll bring my Titan",
                    TimeZone       = "Pacific Time",
                    StartTime      = DateTime.Parse("5/14/2017 04:00:00 PM"),
                    IsHidden       = false,
                    IsInviteOnly   = false,
                    Created        = DateTime.Now,
                    IsDeleted      = false
                },
                new Activity()
                {
                    ID             = 3,
                    ActivityTypeID = 1,
                    AvailableSlots = 5,
                    Description    = "Private raid with 'Selene' to expterminate these Lycans.. I mean Fallen... once and for all.",
                    Duration       = "00:04:00",
                    GameID         = 1,
                    UserID         = 3,
                    GroupID        = 4,
                    Requirements   = "Request to join.  Your credentials will be checked at the door... by force, if necessary",
                    TimeZone       = "Eastern Time",
                    StartTime      = DateTime.Parse("5/28/2017 07:00:00 AM"),
                    IsHidden       = false,
                    IsInviteOnly   = true,
                    Created        = DateTime.Now,
                    IsDeleted      = false
                }
            };

            foreach (var activity in activities)
            {
                context.Activities.Add(activity);
            }
            context.SaveChanges();


            var userGames = new UserGame[]
            {
                new UserGame()
                {
                    ID = 1, UserID = 2, GameID = 1, Created = DateTime.Now, IsDeleted = false
                },
                new UserGame()
                {
                    ID = 2, UserID = 3, GameID = 1, Created = DateTime.Now, IsDeleted = false
                },
                new UserGame()
                {
                    ID = 3, UserID = 1, GameID = 1, Created = DateTime.Now, IsDeleted = false
                },
            };

            foreach (var userGame in userGames)
            {
                context.UserGames.Add(userGame);
            }
            context.SaveChanges();


            var activityUsers = new ActivityUser[]
            {
                new ActivityUser()
                {
                    ID            = 1,
                    ActivityID    = 1,
                    Created       = DateTime.Now,
                    HasBeenBooted = false,
                    IsDeleted     = false,
                    IsTentative   = false,
                    ReasonForBoot = (int)BootReasons.None,
                    UserID        = 1
                },
                new ActivityUser()
                {
                    ID            = 2,
                    ActivityID    = 1,
                    Created       = DateTime.Now,
                    HasBeenBooted = true,
                    IsDeleted     = false,
                    IsTentative   = false,
                    ReasonForBoot = (int)BootReasons.Unfriendly,
                    UserID        = 2
                },
                new ActivityUser()
                {
                    ID            = 3,
                    ActivityID    = 1,
                    Created       = DateTime.Now,
                    HasBeenBooted = false,
                    IsDeleted     = false,
                    IsTentative   = false,
                    ReasonForBoot = (int)BootReasons.None,
                    UserID        = 3
                }
            };

            foreach (var activityUser in activityUsers)
            {
                context.ActivityUsers.Add(activityUser);
            }
            context.SaveChanges();

            var blockedUsers = new BlockedUser[]
            {
                new BlockedUser()
                {
                    ID         = 1,
                    ActivityID = 1,
                    UserID     = 2,
                    Created    = DateTime.Now,
                    IsDeleted  = false
                },
                new BlockedUser()
                {
                    ID             = 2,
                    BlockingUserID = 3,
                    UserID         = 2,
                    Created        = DateTime.Now,
                    IsDeleted      = false
                },
                new BlockedUser()
                {
                    ID = 3,
                    BlockingGroupID = 1,
                    UserID          = 2,
                    Created         = DateTime.Now,
                    IsDeleted       = false
                }
            };

            foreach (var blockedUser in blockedUsers)
            {
                context.BlockedUsers.Add(blockedUser);
            }
            context.SaveChanges();

            var gameConsoleModels = new GameConsoleModel[]
            {
                new GameConsoleModel()
                {
                    ID = 1, GameID = 1, ConsoleModelID = 1, Created = DateTime.Now, IsDeleted = false
                },
                new GameConsoleModel()
                {
                    ID = 2, GameID = 1, ConsoleModelID = 2, Created = DateTime.Now, IsDeleted = false
                },
                new GameConsoleModel()
                {
                    ID = 3, GameID = 1, ConsoleModelID = 4, Created = DateTime.Now, IsDeleted = false
                }
            };

            foreach (var gameConsoleModel in gameConsoleModels)
            {
                context.GameConsoleModels.Add(gameConsoleModel);
            }
            context.SaveChanges();
        }
        public async Task <IActionResult> CreateActivityWithNextStep([FromBody] CreateActivityAndNextStepDto createActivityAndNextStepDto)
        {
            var UsersId = int.Parse(User.FindFirst("UsersId").Value);

            var activityDate = new DateTime();

            if (createActivityAndNextStepDto.Time != null || createActivityAndNextStepDto.Date != null)
            {
                var splittedTime = createActivityAndNextStepDto.Time.Split(":");
                activityDate = DateTime.Parse(createActivityAndNextStepDto.Date).AddHours(double.Parse(splittedTime[0])).AddMinutes(double.Parse(splittedTime[1]));
            }
            var newActivity = new Activity()
            {
                Title       = createActivityAndNextStepDto.Title,
                Description = createActivityAndNextStepDto.Description,
                Date        = activityDate,
                Type        = createActivityAndNextStepDto.Type,
                CreatorId   = UsersId,
                Archived    = false
            };

            if (createActivityAndNextStepDto.CustomerId != 0)
            {
                newActivity.CustomerId = createActivityAndNextStepDto.CustomerId;
            }

            await _context.Activities.AddAsync(newActivity);

            await _context.SaveChangesAsync();

            var nextStepSplittedTime = createActivityAndNextStepDto.NextstepTime.Split(":");
            var nextStepDate         = DateTime.Parse(createActivityAndNextStepDto.NextstepDate)
                                       .AddHours(double.Parse(nextStepSplittedTime[0]))
                                       .AddMinutes(double.Parse(nextStepSplittedTime[1]));

            var newNextStep = new NextStep()
            {
                Title       = createActivityAndNextStepDto.NextstepTitle,
                Description = createActivityAndNextStepDto.NextstepDescription,
                Date        = nextStepDate,
                Type        = createActivityAndNextStepDto.NextstepType,
                CreatorId   = UsersId,
                ActivityId  = newActivity.Id
            };

            await _context.NextStep.AddAsync(newNextStep);

            await _context.SaveChangesAsync();

            newActivity.NextStepId = newNextStep.Id;
            await _context.SaveChangesAsync();

            // Check if users or contactpersons are null

            if (createActivityAndNextStepDto.UsersForActivity != null)
            {
                foreach (var user in createActivityAndNextStepDto.UsersForActivity)
                {
                    var activityUser = new ActivityUser()
                    {
                        UserId     = user.Id,
                        ActivityId = newActivity.Id
                    };
                    await _context.ActivityUsers.AddAsync(activityUser);
                }
            }

            if (createActivityAndNextStepDto.ContactpersonsForActivity != null)
            {
                foreach (var contactperson in createActivityAndNextStepDto.ContactpersonsForActivity)
                {
                    var activityContactperson = new ActivityContactperson()
                    {
                        ContactpersonId = contactperson.Id,
                        ActivityId      = newActivity.Id
                    };
                    await _context.ActivityContactpersons.AddAsync(activityContactperson);
                }
            }

            if (createActivityAndNextStepDto.NextstepUsersForActivity != null)
            {
                foreach (var user in createActivityAndNextStepDto.NextstepUsersForActivity)
                {
                    var nextStepUser = new NextstepUser()
                    {
                        UserId     = user.Id,
                        NextstepId = newNextStep.Id
                    };
                    await _context.NextstepUsers.AddAsync(nextStepUser);
                }
            }

            if (createActivityAndNextStepDto.NextstepContactpersonsForActivity != null)
            {
                foreach (var contactperson in createActivityAndNextStepDto.NextstepContactpersonsForActivity)
                {
                    var nextstepContactperson = new NextstepContactperson()
                    {
                        ContactpersonId = contactperson.Id,
                        NextstepId      = newNextStep.Id
                    };
                    await _context.NextstepContactpersons.AddAsync(nextstepContactperson);
                }
            }


            await _context.SaveChangesAsync();

            return(Ok(createActivityAndNextStepDto));
        }