public ViewModels.Team[] GetManagedTeams(string userName) { DataModels.User requestingUser = this.context.User.Where(x => x.EmailAddress == userName).FirstOrDefault(); DataModels.Team[] teams = this.context.Team.Include(x => x.TeamManager) .Include(x => x.TeamMembers).ThenInclude(x => x.Role) .Where(x => x.TeamManager == requestingUser).ToArray(); List <ViewModels.Team> viewTeams = new List <ViewModels.Team>(); foreach (DataModels.Team team in teams) { ViewModels.Team viewTeam = new ViewModels.Team(); viewTeam.Name = team.Name; viewTeam.Description = team.Description; viewTeam.ID = team.PublicIdentifier; List <TeamMember> members = new List <TeamMember>(); foreach (DataModels.User user in team.TeamMembers) { TeamMember member = new TeamMember(); member.Name = user.LastName + ", " + user.FirstName; member.PublicIdentifier = user.PublicIdentifier; member.Role = user.Role.Name; members.Add(member); } viewTeam.TeamMembers = members.ToArray(); viewTeams.Add(viewTeam); } return(viewTeams.ToArray()); }
public ApiResponse <object> RemoveSchedule(DataModels.User dataUser, int scheduleId) { var scheduleInfo = (from s in _dbContext.Schedules join sr in _dbContext.ScheduleRows on s.Id equals sr.ScheduleId into _sr join ma in _dbContext.MixAudios on s.Id equals ma.ScheduleId into _ma where s.Id == scheduleId select new { Schedule = s, ScheduleRows = _sr, MixAudios = _ma, }).FirstOrDefault(); if (scheduleInfo == null) { return(new ApiResponse <object>("Schedule not found")); } if (scheduleInfo.Schedule.UserId != dataUser.Id) { return(new ApiResponse <object>("You can remove only your schedule")); } _dbContext.MixAudios.RemoveRange(scheduleInfo.MixAudios); _dbContext.ScheduleRows.RemoveRange(scheduleInfo.ScheduleRows); _dbContext.Schedules.Remove(scheduleInfo.Schedule); _dbContext.SaveChanges(); return(new ApiResponse <object>() { Ok = true }); }
public IActionResult Post([FromBody] AuthenticateRequest request) { AuthenticateResponse response = new AuthenticateResponse(); DataModels.User user = _context.User.Include(x => x.Role).Where(x => x.EmailAddress == request.username).FirstOrDefault(); if (user == null) { return(new ObjectResult(response)); } if (!hashUtility.CheckMatch(user.PasswordHash, request.password)) { return(new ObjectResult(response)); } response.token = jwtUtilities.GenereateJwtToken(user); response.userId = user.PublicIdentifier; if (request.getRefreshToken) { response.refreshToken = jwtUtilities.GenerateRefreshToken(user); user.RefreshToken = response.refreshToken; user.RefreshTokenExpiration = DateTime.Now.AddMonths(3); this._context.User.Update(user); this._context.SaveChanges(); } return(new ObjectResult(response)); }
public ViewModels.User GetUser(Guid id) { try { DataModels.User dbUser = this.context.User.Include(x => x.Site).Include(x => x.Role).Where(x => x.PublicIdentifier == id).FirstOrDefault(); if (dbUser == null) { this.ValidationFailed(); } this.ValidationPassed(); ViewModels.User user = new ViewModels.User(); user.userId = dbUser.PublicIdentifier; user.EmailAddress = dbUser.EmailAddress; user.FirstName = dbUser.FirstName; user.LastName = dbUser.LastName; user.UserSite = dbUser.Site.PublicIdentifier; SetSecurityParams(user, dbUser); return(user); } catch (Exception e) { this.SetError(e.Message); return(null); } }
private void SetSecurityParams(ViewModels.User user, DataModels.User dbUser) { if (dbUser.Role.Name == "Site Administrator") { user.IsSiteAdmin = true; user.IsManager = true; user.IsTeamLeader = true; return; } if (dbUser.Role.Name == "Manager") { user.IsSiteAdmin = false; user.IsManager = true; user.IsTeamLeader = true; return; } if (dbUser.Role.Name == "Team Leader") { user.IsSiteAdmin = false; user.IsManager = false; user.IsTeamLeader = true; return; } }
internal Address Map(Address tmp) { this.Street = tmp.Street; this.Ø_UserAddresses = tmp.Ø_UserAddresses; this.Ø_Licenses = tmp.Ø_Licenses; this.Ø_Users = tmp.Ø_Users; return(this); }
public Task <IEnumerable <LookupDto> > Handle(SyncUsersCommand request, CancellationToken cancellationToken) { var users = request.Users ?? new List <LookupDto>(); foreach (var appUser in users) { var localUser = _db.User.FirstOrDefault(u => u.Id == appUser.Id); DataModels.User user = new DataModels.User() { Id = appUser.Id, Name = appUser.Name, IsActive = appUser.IsActive, CreatedDate = appUser.CreatedDate, CreatedBy = appUser.CreatedBy, LastModifiedDate = appUser.LastModifiedDate, LastModifiedBy = appUser.LastModifiedBy }; if (localUser == null) { //if user doesn't exist in database, insert it _db.User.Add(user); } else if (appUser.LastModifiedDate > localUser.LastModifiedDate) { //if the app user is newer, remove the old user and add the new to db _db.User.Remove(localUser); _db.User.Add(user); } else { appUser.Name = localUser.Name; appUser.IsActive = localUser.IsActive; appUser.CreatedDate = localUser.CreatedDate; appUser.CreatedBy = localUser.CreatedBy; appUser.LastModifiedDate = localUser.LastModifiedDate; appUser.LastModifiedBy = localUser.LastModifiedBy; } } var appUserIDs = users.Select(u => u.Id).ToList(); var uniqueLocalUsers = _db.User.Where(u => !appUserIDs.Contains(u.Id)).Select(u => new LookupDto() { Id = u.Id, Name = u.Name, IsActive = u.IsActive, CreatedDate = u.CreatedDate, CreatedBy = u.CreatedBy, LastModifiedDate = u.LastModifiedDate, LastModifiedBy = u.LastModifiedBy }).ToList(); users.AddRange(uniqueLocalUsers); _db.SaveChanges(); return(Task.FromResult <IEnumerable <LookupDto> >(users)); }
public static ApiModels.User GetUser(DataModels.User user) { return(new ApiModels.User() { Id = user.Id, FirstName = user.FirstName, LastName = user.LastName, Photo50 = user.Photo50, }); }
public string GenerateRefreshToken(DataModels.User user) { byte[] salt = GenerateSalt(16); byte[] bytes = KeyDerivation.Pbkdf2(Guid.NewGuid().ToString(), salt, KeyDerivationPrf.HMACSHA512, 10000, 16); string refreshToken = Convert.ToBase64String(bytes); return(refreshToken.Replace("+", string.Empty) .Replace("=", "") .Replace("/", "") .Replace(":", "")); }
public ViewModels.Team Save(ViewModels.RegisterTeam newTeam, string userName) { if (!ValidateTeam(newTeam, userName)) { this.ValidationFailed(); return(null); } this.ValidationPassed(); DataModels.Team dbTeam = new DataModels.Team(); dbTeam.Name = newTeam.Name; dbTeam.PublicIdentifier = Guid.NewGuid(); DataModels.User postingUser = this.context.User.Where(x => x.EmailAddress == userName).FirstOrDefault(); dbTeam.Site = postingUser.Site; dbTeam.Description = newTeam.Description; if (newTeam.TeamLeaderId != null) { DataModels.User teamLeader = this.context.User.Include(x => x.Role).Where(x => x.PublicIdentifier == newTeam.TeamLeaderId).FirstOrDefault(); if (teamLeader != null) { if (teamLeader.Role.ID == 4) { teamLeader.Role = this.context.Role.Where(x => x.ID == 3).FirstOrDefault(); } dbTeam.TeamLeader = teamLeader; } } if (newTeam.TeamManagerId != null) { DataModels.User teamManager = this.context.User.Where(x => x.PublicIdentifier == newTeam.TeamManagerId).FirstOrDefault(); if (teamManager != null) { dbTeam.TeamManager = teamManager; } } dbTeam.TeamMembers = new List <DataModels.User>(); foreach (RegisterMember member in newTeam.TeamMembers) { DataModels.User teamMember = this.context.User.Where(x => x.PublicIdentifier == member.Id).FirstOrDefault(); dbTeam.TeamMembers.Add(teamMember); } this.context.Team.Add(dbTeam); this.context.SaveChanges(); ViewModels.Team resultTeam = new ViewModels.Team(); resultTeam.Name = dbTeam.Name; resultTeam.ID = dbTeam.PublicIdentifier; return(resultTeam); }
private static DateTime GetCooldown(DataModels.User user, float random, double scale = 1d) { #if DEBUG if (user != null && (user.IsAdmin.GetValueOrDefault() || user.IsModerator.GetValueOrDefault())) { //random *= 0.f; scale *= 0.5f; return(DateTime.UtcNow.AddSeconds(Math.Min(random * 60d, 30) * scale)); } #endif return(DateTime.UtcNow.AddMinutes(Math.Min(random * 60d, 30) * scale)); }
public Task <Guid> Handle(AddUserCommand request, CancellationToken cancellationToken) { var user = new DataModels.User() { Id = request.Id, Name = request.Name, IsActive = request.IsActive }; _db.User.Add(user); _db.SaveChanges(); return(Task.FromResult(user.Id)); }
public string GenereateJwtToken(DataModels.User user) { var claims = new[] { new Claim(ClaimTypes.Name, user.EmailAddress), new Claim(ClaimTypes.Role, user.Role.Name) }; var key = new SymmetricSecurityKey(System.Text.Encoding.UTF8.GetBytes(configuration["SecurityKey"])); var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256); var token = new JwtSecurityToken( issuer: "yourdomain.com", audience: "yourdomain.com", claims: claims, expires: DateTime.Now.AddMinutes(20), signingCredentials: creds); return(new JwtSecurityTokenHandler().WriteToken(token)); }
public ViewModels.User Save(ViewModels.RegisterUser user) { try { if (!ValidateUser(user)) { base.ValidationFailed(); return(null); } base.ValidationPassed(); DataModels.User dbUser = new DataModels.User(); dbUser.CreatedDate = DateTime.Now; dbUser.EmailAddress = user.EmailAddress; dbUser.FirstName = user.FirstName; dbUser.LastName = user.LastName; dbUser.PasswordHash = hashGenerator.CalculateHash(user.Password); dbUser.PublicIdentifier = Guid.NewGuid(); DataModels.Site site = null; if (this.configuration["SingleSiteMode"].ToLower() == "true") { site = this.context.Site.FirstOrDefault(); dbUser.Site = site; } if (this.context.User.Count() == 0) { //Congrats you are the site admin! dbUser.Role = this.context.Role.Where(x => x.ID == 1).FirstOrDefault(); } else { //Lowly team member dbUser.Role = this.context.Role.Where(x => x.ID == 4).FirstOrDefault(); } this.context.User.Add(dbUser); this.context.SaveChanges(); ViewModels.User viewUser = new ViewModels.User(); viewUser.FirstName = dbUser.FirstName; viewUser.LastName = dbUser.LastName; viewUser.EmailAddress = dbUser.EmailAddress; viewUser.UserSite = site.PublicIdentifier; viewUser.userId = dbUser.PublicIdentifier; return(viewUser); } catch (Exception e) { base.SetError(e.Message); return(null); } }
public void SendPermissionData(DataModels.GameSession gameSession, DataModels.User user = null) { if (gameData == null) { logger.LogError(nameof(gameData) + " is null. unable to send permission data."); return; } if (gameSession == null) { logger.LogError(nameof(gameSession) + " is null. Unable to send permission data."); return; } user = user ?? gameData.GetUser(gameSession.UserId); var isAdmin = user.IsAdmin.GetValueOrDefault(); var isModerator = user.IsModerator.GetValueOrDefault(); //var subInfo = await twitchClient.GetSubscriberAsync(user.UserId); var patreonTier = user.PatreonTier ?? 0; var subscriptionTier = patreonTier; var expMultiplierLimit = MaxMultiplier[patreonTier]; if (isModerator) { subscriptionTier = 3; expMultiplierLimit = MaxMultiplier[subscriptionTier]; } if (isAdmin) { subscriptionTier = 3; expMultiplierLimit = 50000000; } var permissionEvent = gameData.CreateSessionEvent( GameEventType.PermissionChange, gameSession, new Permissions { IsAdministrator = user.IsAdmin ?? false, IsModerator = user.IsModerator ?? false, SubscriberTier = subscriptionTier, ExpMultiplierLimit = expMultiplierLimit, StrictLevelRequirements = true, }); gameData.Add(permissionEvent); }
public IActionResult RefreshAccessToken(string refreshToken) { DataModels.User user = this._context.User.Include(x => x.Role).Where(x => x.RefreshToken == refreshToken).FirstOrDefault(); if (user == null) { return(BadRequest()); } else if (user.RefreshTokenExpiration < DateTime.Now) { return(BadRequest()); } else { return(new ObjectResult(new RefreshResponse(jwtUtilities.GenereateJwtToken(user)))); } }
private WebsiteAdminUser GetUser(DataModels.User userData) { if (userData == null) { return(null); } var clan = gameData.GetClanByUser(userData.Id); WebsiteClan websiteClan = null; if (clan != null) { websiteClan = new WebsiteClan { Id = clan.Id, CanChangeName = clan.CanChangeName, NameChangeCount = clan.NameChangeCount, Level = clan.Level, }; } var bankItems = gameData .GetUserBankItems(userData.Id) .Select(DataMapper.Map <RavenNest.Models.UserBankItem, RavenNest.DataModels.UserBankItem>) .ToList(); return(new WebsiteAdminUser { Characters = new List <WebsiteAdminPlayer>(), Created = userData.Created, Id = userData.Id, PatreonTier = userData.PatreonTier, UserId = userData.UserId, UserName = userData.UserName, Email = userData.Email, IsAdmin = userData.IsAdmin.GetValueOrDefault(), IsModerator = userData.IsModerator.GetValueOrDefault(), Status = userData.Status ?? 0, IsHiddenInHighscore = userData.IsHiddenInHighscore.GetValueOrDefault(), Clan = websiteClan, HasClan = websiteClan != null, Stash = bankItems, }); }
private static SessionToken GenerateSessionToken( AuthToken token, DataModels.User user, DataModels.GameSession session, string clientVersion) { return(new SessionToken { AuthToken = token.Token, ExpiresUtc = DateTime.UtcNow + TimeSpan.FromDays(180), SessionId = session.Id, StartedUtc = session.Started, TwitchDisplayName = user.DisplayName, TwitchUserId = user.UserId, TwitchUserName = user.UserName, ClientVersion = clientVersion }); }
public ViewModels.User[] GetUnassignedUsers(string userName) { DataModels.User activeUser = this.context.User.Include(x => x.Site).Where(x => x.EmailAddress == userName).FirstOrDefault(); DataModels.User[] users = this.context.User.Include(x => x.Site).Include(x => x.Team) .Where(x => x.Site == activeUser.Site && x.Team == null).ToArray(); List <ViewModels.User> viewUsers = new List <ViewModels.User>(); foreach (var user in users) { ViewModels.User viewUser = new ViewModels.User(); viewUser.FirstName = user.FirstName; viewUser.LastName = user.LastName; viewUser.EmailAddress = user.EmailAddress; viewUser.userId = user.PublicIdentifier; viewUsers.Add(viewUser); } return(viewUsers.ToArray()); }
private bool ValidateTeam(RegisterTeam newTeam, string userName) { if (String.IsNullOrEmpty(newTeam.Name)) { return(false); } DataModels.User postingUser = this.context.User.Include(x => x.Site).Where(x => x.EmailAddress == userName).FirstOrDefault(); DataModels.Team[] siteTeams = this.context.Team.Include(x => x.Site).Where(x => x.Site == postingUser.Site).ToArray(); foreach (var team in siteTeams) { if (team.Name == newTeam.Name) { return(false); } } return(true); }
public ApiResponse <ApiModels.AuthUser> UpdateToken(Guid token) { DataModels.User dataUser = _dbContext.Users.FirstOrDefault(x => x.Token == token); if (dataUser == null) { return(new ApiResponse <ApiModels.AuthUser>("User with this token not found")); } dataUser.Token = Guid.NewGuid(); dataUser.ExpiredAt = DateTime.UtcNow.AddDays(TokenExpiredAtDays); _dbContext.SaveChanges(); return(new ApiResponse <ApiModels.AuthUser>() { Ok = true, Data = ApiMapper.GetAuthUser(dataUser), }); }
public ApiResponse <DataModels.User> CheckToken(Guid token) { DataModels.User dataUser = _dbContext.Users.FirstOrDefault(x => x.Token == token); if (dataUser == null) { return(new ApiResponse <DataModels.User>("User with this token not found")); } if (dataUser.ExpiredAt < DateTime.UtcNow) { return(new ApiResponse <DataModels.User>("Token expired. Please, update it ^^")); } return(new ApiResponse <DataModels.User>() { Ok = true, Data = dataUser, }); }
public ApiResponse <IEnumerable <ApiModels.Audio> > GetAudios(DataModels.User user, int skip, int take) { if (take <= 0) { return new ApiResponse <IEnumerable <ApiModels.Audio> >() { Ok = true, Data = Enumerable.Empty <ApiModels.Audio>(), } } ; if (skip < 0) { skip = 0; } List <ApiModels.Audio> audioList = _dbContext.Audios .Where(x => x.UserId == user.Id) .OrderByDescending(x => x.Date) .Skip(skip) .Take(take) .ToList() .Select(x => ApiMapper.GetAudio(x)) .ToList(); for (int i = 0; i < audioList.Count(); i++) { AudioById audioEntity = _vkWebService.GetAudio(user.AccessToken, user.Id, audioList[i].VkId); string url = audioEntity?.response?.FirstOrDefault()?.url; audioList[i].Url = url; } return(new ApiResponse <IEnumerable <ApiModels.Audio> >() { Ok = true, Data = audioList.Where(x => !string.IsNullOrWhiteSpace(x.Url)), }); }
public string LoginVerificated(int id) { string returned = "IsNotExists"; var parameters = Request.GetQueryNameValuePairs(); var login = parameters.Where(o => o.Key == "login").FirstOrDefault().Value.ToString(); if (login != null) { using (WDB w = new WDB()) { DataModels.User user = w.User.LoginVerificated(login); if (user != null) { returned = "IsExists"; } } } else { returned = "IsExists"; } return(returned); }
public ApiResponse <ApiModels.AuthUser> RegisterNewUser(string code) { if (string.IsNullOrWhiteSpace(code)) { return(new ApiResponse <ApiModels.AuthUser>($"{nameof(code)} can't be null or white space")); } AccessToken vkAccessToken = _vkWebService.GetAccessToken(code); string accessToken = vkAccessToken.access_token; int userId = vkAccessToken.user_id; UserEntity userEntity = null; try { userEntity = _vkWebService.GetUserEntity(accessToken, userId); } catch (Exception ex) { _logger.Error($"{nameof(RegisterNewUser)} failed: {ex.Message}"); return(new ApiResponse <ApiModels.AuthUser>(ex.Message)); } if (userEntity == null) { return(new ApiResponse <ApiModels.AuthUser>("Something went wrong")); } if (userEntity.error != null) { return(new ApiResponse <ApiModels.AuthUser>(userEntity.error?.error_msg ?? "Unknown error")); } if (userEntity.response == null || userEntity.response.Count() != 1) { return(new ApiResponse <ApiModels.AuthUser>("No user data")); } VkModels.User vkUser = userEntity.response.First(); DataModels.User dataUser = _dbContext.Users.FirstOrDefault(x => x.Id == userId); if (dataUser == null) { dataUser = new DataModels.User() { Id = userId, FirstName = vkUser.first_name, LastName = vkUser.last_name, Photo50 = vkUser.photo_50, AccessToken = accessToken, Token = Guid.NewGuid(), ExpiredAt = DateTime.UtcNow.AddDays(TokenExpiredAtDays), }; _dbContext.Users.Add(dataUser); } else { dataUser.FirstName = vkUser.first_name; dataUser.LastName = vkUser.last_name; dataUser.Photo50 = vkUser.photo_50; dataUser.AccessToken = accessToken; dataUser.Token = Guid.NewGuid(); dataUser.ExpiredAt = DateTime.UtcNow.AddDays(TokenExpiredAtDays); } _dbContext.SaveChanges(); return(new ApiResponse <ApiModels.AuthUser>() { Ok = true, Data = ApiMapper.GetAuthUser(dataUser), }); }
public bool IncreaseGlobalExpMultiplier(DataModels.User user) { return(IncreaseGlobalExpMultiplier(user, 1)); }
//private ILog log = LogManager.GetLogger(typeof(_Default)); protected void Page_Load(object sender, EventArgs e) { try { #if DEBUG //If in debug mode and user is null, instantiate a debug user //object, so we don't have to login every time we debug. DataModels.User debUser = (DataModels.User)Session[Const.User]; if (debUser == null) { debUser = new DataModels.User(DevConf.DebugUserId, true); Session[Const.User] = debUser; } debUser.IsAuStudent = true; #endif DataModels.User user = (DataModels.User)Session[Const.User]; if (user == null || !user.IsAuStudent) { string returnUrl = HttpUtility.UrlEncode( Request.Url.ToString()); string queryStr = "?" + Const.AuthAuStud + "=1" + "&ReturnUrl=" + returnUrl; string url = "~/User/Login.aspx" + queryStr; Response.Redirect(url, true); } //Get the event ID string eidStr = Request[Const.EventId]; #if DEBUG //If in debug mode and request event ID is undefined, assign an //event id. if (eidStr == null) eidStr = DevConf.DebugEventIdStr; #endif int eventId = 0; if (eidStr == null || !int.TryParse(eidStr, out eventId)) Response.Redirect("~/Default.aspx", true); if (!IsPostBack) { PopulateForm(eventId); if (IsNewRegistration) { //Not an update so it's a new registration. regBtn.Visible = true; UpdateButton.Visible = false; //Check if event is full if (Event.IsFull(eventId)) { ErrorLit.Text = "We're sorry the event is full."; regBtn.Enabled = false; } } else { //This is an update of existing registraion. regBtn.Visible = false; UpdateButton.Visible = true; FillRegistrationInfo(user.Uid, eventId); } } } catch (Exception ex) { //ErrorLit.Text = ex.Message; //ErrorLit.Text = ex.StackTrace; } }
public ApiResponse <object> CreateSchedule(DataModels.User dataUser, Schedule schedule) { if (schedule.Title == null) { return(new ApiResponse <object>("Schedule's title can't be null")); } schedule.Title = schedule.Title.Trim(); if (schedule.Title == string.Empty) { return(new ApiResponse <object>("Schedule's title can't be empty")); } if (schedule.Title.Length > 50) { return(new ApiResponse <object>("Schedule's title can't be greater then 50 symbols")); } if (schedule.ScheduleRows == null || schedule.ScheduleRows.Count() == 0) { return(new ApiResponse <object>("Schedule rows can't be null or empty")); } IEnumerable <int> orderList = schedule.ScheduleRows.Select(x => x.Order); List <int> sortOrderList = orderList.OrderBy(x => x).ToList(); int sortOrderCount = sortOrderList.Last() - sortOrderList.First() + 1; if (sortOrderCount > sortOrderList.Count) { return(new ApiResponse <object>("Order list has gaps")); } if (sortOrderCount < sortOrderList.Count) { return(new ApiResponse <object>("Order list has duplicates")); } IEnumerable <IGrouping <int, ScheduleRow> > scheduleRowsGroupIndex = schedule.ScheduleRows.GroupBy(x => x.UserId); //foreach (var sr in scheduleRowsGroupIndex) //{ // if (sr.GroupBy(x => x.CreateRandomOrder).Count() > 1) // return new ApiResponse<object>($"User {sr.Key} have more then one order"); //} DataModels.Schedule dataSchedule = new DataModels.Schedule() { BlockSize = sortOrderList.Count, DateCreated = DateTime.UtcNow, Title = schedule.Title, UserId = dataUser.Id, }; _dbContext.Schedules.Add(dataSchedule); _dbContext.SaveChanges(); int addedScheduleId = dataSchedule.Id; var dataScheduleRowList = new List <DataModels.ScheduleRow>(); foreach (var sr in scheduleRowsGroupIndex) { ScheduleRow firstScheduleRow = sr.First(); //if(firstScheduleRow.CreateRandomOrder) //{ // CreateRandomOrderForUser(firstScheduleRow.UserId, addedScheduleId); //} for (int i = 0; i < sr.Count(); i++) { dataScheduleRowList.Add(new DataModels.ScheduleRow() { GroupIndex = i + 1, Order = sr.ElementAt(i).Order, ScheduleId = addedScheduleId, UserId = firstScheduleRow.UserId, }); } } _dbContext.ScheduleRows.AddRange(dataScheduleRowList); _dbContext.SaveChanges(); return(new ApiResponse <object>() { Ok = true, Data = dataSchedule, }); }
public User(DataModels.User user) { this.userDataModel = user; }
public User() { userDataModel = new DataModels.User(); }
public UserViewModel(DataModels.User user) { this.userDataModel = user; }
public ApiResponse <object> LoadAudios(DataModels.User user) { //get and remove all current user's albums/audios List <DataModels.Album> dataAlbumList = _dbContext.Albums.Where(x => x.UserId == user.Id).ToList(); List <DataModels.Audio> dataAudioList = _dbContext.Audios.Where(x => x.UserId == user.Id).ToList(); IEnumerable <int> audioIdList = dataAudioList.Select(x => x.VkId); List <DataModels.MixAudio> mixDataAudioList = _dbContext.MixAudios.Where(x => audioIdList.Contains(x.AudioId)).ToList(); //Task loadAlbums = Task.Run(() => // dataAlbumList = _dbContext.Albums.Where(x => x.UserId == user.Id).ToList()); //Task loadAudios = Task.Run(() => // dataAudioList = _dbContext.Audios.Where(x => x.UserId == user.Id).ToList()); //await Task.WhenAll(loadAlbums, loadAudios); _dbContext.MixAudios.RemoveRange(mixDataAudioList); _dbContext.Audios.RemoveRange(dataAudioList); _dbContext.Albums.RemoveRange(dataAlbumList); //download all (okey, 6000) VkModels.AlbumEtity vkAlbumEntity = null; VkModels.AudioEtity vkAudioEntity = null; try { vkAlbumEntity = _vkWebService.GetAlbums(user.AccessToken, 100); } catch (Exception ex) { return(new ApiResponse <object>(ex.Message)); } try { //TODO: mb add few Tasks for better perform? Need to check vkAudioEntity = _vkWebService.GetAudios(user.AccessToken, 6000); } catch (Exception ex) { return(new ApiResponse <object>(ex.Message)); } //album errors if (vkAlbumEntity.error != null) { return(new ApiResponse <object>(vkAlbumEntity.error?.error_msg)); } if (vkAlbumEntity.response == null) { return(new ApiResponse <object>("Album response is null")); } //audio errors if (vkAudioEntity.error != null) { return(new ApiResponse <object>(vkAudioEntity.error?.error_msg)); } if (vkAudioEntity.response == null) { return(new ApiResponse <object>("Audio response is null")); } user.AlbumsCount = vkAlbumEntity.response.items.Count(); user.AudiosCount = vkAudioEntity.response.items.Count(); _dbContext.Entry(user).State = System.Data.Entity.EntityState.Modified; //map albums IEnumerable <DataModels.Album> albums = vkAlbumEntity .response .items .Select(x => { DataModels.Album dataAlbum = VkMapper.GetAlbum(x); dataAlbum.UserId = user.Id; return(dataAlbum); }); //map musics var audioList = new List <DataModels.Audio>(vkAudioEntity.response.items.Count()); for (int i = 0; i < vkAudioEntity.response.items.Count(); i++) { var mappedAudio = VkMapper.GetAudio(vkAudioEntity.response.items.ElementAt(i)); mappedAudio.Order = i + 1; mappedAudio.UserId = user.Id; audioList.Add(mappedAudio); } //add ranges and save changes _dbContext.Albums.AddRange(albums); _dbContext.SaveChanges(); foreach (var aud in audioList) { DataModels.Album album = _dbContext.Albums.Local.FirstOrDefault(x => aud.AlbumId == x.VkId); if (album != null) { aud.AlbumId = album.Id; } } _dbContext.Audios.AddRange(audioList); _dbContext.SaveChanges(); return(new ApiResponse <object>() { Ok = true }); }
public IHttpActionResult UpdateUser(DataModels.User user) { return(Ok(UsersService.UpdateUser(user))); }
protected void LoginButton_Click(object sender, EventArgs e) { try { int uid = -1; bool isStudent = false; //Authenticate if (AuthenticateSysUser) { //We need to authenticate system user //Authenticate system user string email = emailTxb.Text.Trim(); string pwd = pwdTxb.Text; uid = Authenticate(email, pwd); } //Authenticate AU user if (AuthenticateAuStudent) { isStudent = AuthAuUser(auusrTxb.Text.Trim(), aupwdTxb.Text); } // //Check and process result for both authentications. // if (AuthenticateSysUser && AuthenticateAuStudent) { //Need authenticate for both system user and au user. if (uid != -1) { //Sys auth succeeded. Create user and hide sys login //box. Panel1.Visible = false; DataModels.User user = new DataModels.User(uid); Session[Const.User] = user; if (isStudent) { //Both auth succeed, redirect. user.IsAuStudent = true; Nav.ReturnToPrevPage(this); } else { //Sys succeed, AU fail AuLoginLit.Text = "Auburn credential is incorrect."; } } else { FailureText.Text = "Email and password is incorrect."; } } else if (AuthenticateSysUser) { //Only need authentication for sys user. if (uid != -1) { //Sys auth succeeded. DataModels.User user = new DataModels.User(uid); Session[Const.User] = user; Nav.ReturnToPrevPage(this); } else { //Sys auth fail. FailureText.Text = "Email and password is incorrect."; } } else if (AuthenticateAuStudent) { //Only need authenticatation for AU user. DataModels.User user = (DataModels.User)Session[Const.User]; if (isStudent) { user.IsAuStudent = true; Nav.ReturnToPrevPage(this); } else { AuLoginLit.Text = "Auburn credential is incorrect."; } } } catch (Exception ex) { FailureText.Text = "Sorry! There was a system error!"; FailureText.Text += ex.Message; FailureText.Text += ex.StackTrace; } }
public ApiResponse <IEnumerable <ApiModels.Audio> > GetAudios(DataModels.User user, int scheduleId, int skip, int take) { if (take <= 0) { return new ApiResponse <IEnumerable <ApiModels.Audio> >() { Ok = true, Data = Enumerable.Empty <ApiModels.Audio>(), } } ; skip = skip <= 0 ? 1 : skip + 1; IEnumerable <int> pageNumbers = Enumerable.Range(skip, take); var scheduleQry = (from s in _dbContext.Schedules where s.Id == scheduleId join sr in _dbContext.ScheduleRows on s.Id equals sr.ScheduleId select new { Schedule = s, ScheduleRow = sr } into scheduleRows group scheduleRows by scheduleRows.ScheduleRow.UserId into _s select new { UserId = _s.Key, ScheduleRows = _s, } into userRows from pn in pageNumbers select userRows.ScheduleRows.Select(x => new { GroupIndex = x.ScheduleRow.GroupIndex + (userRows.ScheduleRows.Count() * (pn - 1)), Order = x.ScheduleRow.Order + (x.Schedule.BlockSize * (pn - 1)), UserId = x.ScheduleRow.UserId, })) .SelectMany(x => x); List <ApiModels.Audio> audioList = (from s in scheduleQry join a in _dbContext.Audios on new { index = s.GroupIndex, userId = s.UserId } equals new { index = a.Order, userId = a.UserId } join ma in _dbContext.MixAudios on new { index = s.GroupIndex, userId = s.UserId } equals new { index = ma.Order, userId = ma.UserId } into _ma from ma in _ma.DefaultIfEmpty() join m in _dbContext.Audios on new { audioId = ma.AudioId, userId = ma.UserId } equals new { audioId = m.Id, userId = m.UserId } into _m from m in _m.DefaultIfEmpty() where ma == null || ma.ScheduleId == scheduleId select new { Audio = m ?? a, Order = s.Order, }) .OrderBy(x => x.Order) .ToList() .Select(x => ApiMapper.GetAudio(x.Audio)) .ToList(); for (int i = 0; i < audioList.Count(); i++) { AudioById audioEntity = _vkWebService.GetAudio(user.AccessToken, user.Id, audioList[i].VkId); string url = audioEntity?.response?.FirstOrDefault()?.url; audioList[i].Url = url; } return(new ApiResponse <IEnumerable <ApiModels.Audio> >() { Ok = true, Data = audioList.Where(x => !string.IsNullOrWhiteSpace(x.Url)), }); }