public IActionResult SaveUserTeam(SaveUserTeamRequest team) { try { using (TeamsDbEntities entities = new TeamsDbEntities()) { Team teamEntity = entities.Teams.FirstOrDefault(p => p.ID == team.TeamID); List <TeamUserStatu> teamStatus = entities.TeamUserStatus.Where(p => p.TeamID == team.TeamID).ToList(); int[] addList = team.UserIDList.Where(p => !teamStatus.Any(y => y.UserID.Value == p)).ToArray(); List <TeamUserStatu> excludeItem = teamStatus.Where(p => (!team.UserIDList.Contains(p.UserID.Value) && teamEntity.AdminUser != p.UserID)).ToList(); entities.TeamUserStatus.RemoveRange(excludeItem); foreach (var userID in addList) { entities.TeamUserStatus.Add(new TeamUserStatu { TeamID = team.TeamID, UserID = userID }); } entities.SaveChanges(); } return(Ok(new ResponseBase { Result = "Success" })); } catch (Exception) { return(BadRequest(new ResponseBase { Result = "System Error." })); } }
public IActionResult SaveTeam(TeamRequest team) { using (TeamsDbEntities entities = new TeamsDbEntities()) { List <Team> teamList = entities.Teams.Where(p => p.TeamName == team.Name).ToList(); if (teamList.Count > 0) { return(BadRequest(new { Result = "Team name used before" })); } else { Team createTeam = entities.Teams.Add(new Team { TeamName = team.Name, AdminUser = team.UserID, }); entities.TeamUserStatus.Add(new TeamUserStatu { TeamID = createTeam.ID, UserID = team.UserID }); entities.SaveChanges(); return(Ok(new TeamModel { Name = createTeam.TeamName, ID = createTeam.ID, AdminUser = createTeam.AdminUser.Value })); } } }
public IActionResult SaveDevice(DeviceRequest request) { try { using (TeamsDbEntities entities = new TeamsDbEntities()) { UserDevice devices = entities.UserDevices.FirstOrDefault(p => p.NotificationKey == request.NotificationKey); if (devices == default) { entities.UserDevices.Add(new UserDevice { NotificationKey = request.NotificationKey, UserID = request.UserID, CreateDate = DateTime.Now }); entities.SaveChanges(); } else { devices.UserID = request.UserID; devices.CreateDate = DateTime.Now; } } return(Ok(new ResponseBase { Result = "Success" })); } catch (Exception) { return(BadRequest(new ResponseBase { Result = "System Error." })); } }
public void Delete(int id) { using (TeamsDbEntities entities = new TeamsDbEntities()) { var user = entities.Users.Find(id); if (user != null) { entities.Users.Remove(user); entities.SaveChanges(); } } }
public IActionResult DeleteTask(TaskModel task) { using (TeamsDbEntities entities = new TeamsDbEntities()) { Data.Task taskEntity = entities.Tasks.FirstOrDefault(x => x.ID == task.ID && task.TeamID == x.TeamID); taskEntity.IsDelete = true; entities.SaveChanges(); return(Ok(new ResponseBase { Result = "Success" })); } }
public IActionResult SaveTask(TaskModel task) { DateTime today = DateTime.Now; using (TeamsDbEntities entities = new TeamsDbEntities()) { Data.Task taskEntity = entities.Tasks.FirstOrDefault(x => x.ID == task.ID); Data.Task taskResponse = new Data.Task(); if (taskEntity == default) { taskEntity = new Data.Task { Header = task.Header, Detail = task.Detail, UserID = task.UserID, Progress = (short)task.Progress, CreateBy = task.CreateBy, CreateDate = today, IsDelete = false, StartDate = task.StartDate, EndDate = task.EndDate, TeamID = task.TeamID }; taskResponse = entities.Tasks.Add(taskEntity); } else { taskEntity.Header = task.Header; taskEntity.Detail = task.Detail; taskEntity.StartDate = task.StartDate; taskEntity.EndDate = task.EndDate; taskEntity.UserID = task.UserID; taskEntity.Progress = (short)task.Progress; } Data.TaskLog taskLog = new TaskLog { TaskID = taskEntity == default ? taskResponse.ID : taskEntity.ID, ProgressID = (short)task.Progress, UserID = task.UserID, ModifyBy = task.CreateBy, ModifyDate = DateTime.Now, }; entities.TaskLogs.Add(taskLog); entities.SaveChanges(); return(Ok(new ResponseBase { Result = "Success" })); } }
public void Update(User userParam, string password = null) { using (TeamsDbEntities entities = new TeamsDbEntities()) { var user = entities.Users.Find(userParam.ID); if (user == null) { throw new AppException("User not found"); } // update username if it has changed if (!string.IsNullOrWhiteSpace(userParam.Email) && userParam.Email != user.Email) { // throw error if the new username is already taken if (entities.Users.Any(x => x.Email == userParam.Email)) { throw new AppException("Email " + userParam.Email + " is already taken"); } user.Email = userParam.Email; } // update user properties if provided if (!string.IsNullOrWhiteSpace(userParam.FirstName)) { user.FirstName = userParam.FirstName; } if (!string.IsNullOrWhiteSpace(userParam.LastName)) { user.LastName = userParam.LastName; } // update password if provided if (!string.IsNullOrWhiteSpace(password)) { string passwordHash; CreatePasswordHash(password, out passwordHash); user.PasswordHash = passwordHash; } entities.SaveChanges(); } }
public User Create(User user, string password) { // validation if (string.IsNullOrWhiteSpace(password)) { throw new AppException("Password is required"); } using (TeamsDbEntities entities = new TeamsDbEntities()) { if (entities.Users.Any(x => x.Email == user.Email)) { throw new AppException("Username \"" + user.Email + "\" is already taken"); } user.PasswordHash = password; entities.Users.Add(user); entities.SaveChanges(); return(user); } }
public IActionResult DeleteTeam(DeleteTeamRequest team) { try { using (TeamsDbEntities entities = new TeamsDbEntities()) { Team teamList = entities.Teams.FirstOrDefault(p => p.ID == team.TeamID); entities.Teams.Remove(teamList); List <TeamUserStatu> teamStatusList = entities.TeamUserStatus.Where(p => p.TeamID == team.TeamID).ToList(); if (teamStatusList != null && teamStatusList.Count != 0) { entities.TeamUserStatus.RemoveRange(teamStatusList); } entities.SaveChanges(); return(Ok(new { Result = "Success" })); } } catch (Exception) { return(BadRequest(new { Result = "System Exeption" })); } }