public static async Task<List<User>> SearchUsersPerKeywordAsync(this IAdminAccessBll accessBll, SessionToken token, string keyword) { var result = await AdminAccessWs.SearchUsersPerKeywordAsync( token.ToWebSeriveObject<WS.SessionToken>(), keyword); return ProxyHelper.ToListOf<WS.User, BLL.User>(result); }
public static async Task<List<User>> GetUserAsync(this IAdminAccessBll accessBll, SessionToken token, PagingData page) { var result = await AdminAccessWs.GetUsersAsync( token.ToWebSeriveObject<WS.SessionToken>(), page.ToWebSeriveObject<WS.PagingData>()); return ProxyHelper.ToListOf<WS.User, BLL.User>(result); }
public override bool DelayPerformance(SessionToken token, Performance oldPerformance, Performance newPerformance) { if (!IsUserAuthenticated(token) || !IsPerformanceValid(oldPerformance) || !IsPerformanceValid(newPerformance) || Equals(oldPerformance, newPerformance)) { return false; } Performance checkResult = null; PerformanceDao.SelectById(oldPerformance.DateTime, oldPerformance.Artist.ArtistId) .OnSuccess(response => checkResult = response.ResultObject); if (checkResult == null) return false; var insertStatus = DaoStatus.Failed; using (var scope = new TransactionScope()) { var deleteStatus = PerformanceDao.Delete(oldPerformance).ResponseStatus; if (deleteStatus == DaoStatus.Successful) insertStatus = PerformanceDao.Insert(newPerformance).ResponseStatus; if (insertStatus == DaoStatus.Successful) scope.Complete(); } return insertStatus == DaoStatus.Successful; }
public void RegisterUserSession(SessionToken token, IAuthAccessBll authAccessBll) { lock (_sessionDirectory) { if (token?.SessionId == null || token.User == null) return; _sessionDirectory[token] = authAccessBll; Console.WriteLine($"Registered new session key: {token}"); } }
public User GetUserFromSession(SessionToken token) { lock (_sessionDirectory) { if (_sessionDirectory.ContainsKey(token) && _sessionDirectory.AsParallel().Any(x => x.Key.Equals(token))) return token.User; } return null; }
public void DeleteUserSession(SessionToken token) { lock (_sessionDirectory) { var value = _sessionDirectory.Keys.AsParallel().FirstOrDefault(x => x.User.Equals(token.User)); if (value == null) return; _sessionDirectory.Remove(value); Console.WriteLine($"Removed session key: {value}"); } }
public override List<string> GetUserAutoCompletion(SessionToken token, string keyword) { if (!IsUserAuthenticated(token)) return new List<string>(); Func<List<string>> func = () => { var set = new HashSet<string>(); if (keyword != null && keyword.Length >= 2) { SearchUsersPerKeyword(token, keyword)?.ForEach(u => { if (Regex.IsMatch(u.FirstName, keyword, RegexOptions.IgnoreCase)) set.Add(u.FirstName); if (Regex.IsMatch(u.LastName, keyword, RegexOptions.IgnoreCase)) set.Add(u.LastName); if (u.Artist != null && Regex.IsMatch(u.Artist.Name, keyword, RegexOptions.IgnoreCase)) set.Add(u.Artist.Name); }); } return set.ToList(); }; return EvaluateSessionPagingResult(token, func); }
public bool ModifyPerformance(SessionToken token, Performance performance) => AdminAccessDelegate.ModifyPerformance(token, performance);
public bool LoginAdmin(SessionToken token) => AdminAccessDelegate.LoginAdmin(token);
public bool SendNotification(SessionToken token, Notification notification) => AdminAccessDelegate.SendNotification(token, notification);
public bool RemoveVenue(SessionToken token, Venue venue) => AdminAccessDelegate.RemoveVenue(token, venue);
public bool RemoveArtist(SessionToken token, Artist artist) => AdminAccessDelegate.RemoveArtist(token, artist);
public bool IsValidAdmin(SessionToken token) => AdminAccessDelegate.IsValidAdmin(token);
public bool ModifyArtistRange(SessionToken token, List<Artist> artists) => AdminAccessDelegate.ModifyArtistRange(token, artists);
public override bool SendNotification(SessionToken token, Notification notification) { if (!IsUserAuthenticated(token) || !IsNotificationValid(notification)) return false; try { using (var mailMessage = new MailMessage(notification.Sender, notification.Recipient) { Subject = notification.Subject, Body = notification.Body, IsBodyHtml = true }) using (var smtpClient = new SmtpClient(EmailNotificationServer, EmailNotificationPort) { Credentials = new NetworkCredential(EmailNotificationUsername, EmailNotificationPassword), DeliveryMethod = SmtpDeliveryMethod.Network, EnableSsl = true }) { smtpClient.Send(mailMessage); } } catch (Exception) { return false; } return true; }
public List<string> GetUserAutoCompletion(SessionToken token, string keyword) => AdminAccessDelegate.GetUserAutoCompletion(token, keyword);
public PagingData RequestUserPagingData(SessionToken token) => AdminAccessDelegate.RequestUserPagingData(token);
public bool ModifyLocationRange(SessionToken token, List<Location> locations) => AdminAccessDelegate.ModifyLocationRange(token, locations);
public bool ModifyArtist(SessionToken token, Artist artist) => AdminAccessDelegate.ModifyArtist(token, artist);
public bool ModifyLocation(SessionToken token, Location location) => AdminAccessDelegate.ModifyLocation(token, location);
public bool ModifyVenue(SessionToken token, Venue venue) => AdminAccessDelegate.ModifyVenue(token, venue);
public bool RemoveLocation(SessionToken token, Location location) => AdminAccessDelegate.RemoveLocation(token, location);
public bool RemovePerformance(SessionToken token, Performance performance) => AdminAccessDelegate.RemovePerformance(token, performance);
public bool ModifyVenueRange(SessionToken token, List<Venue> venues) => AdminAccessDelegate.ModifyVenueRange(token, venues);
public bool IsUserAuthenticated(SessionToken token) => AdminAccessDelegate.IsUserAuthenticated(token);
public bool ModifyPerformanceRange(SessionToken token, List<Performance> performances) => AdminAccessDelegate.ModifyPerformanceRange(token, performances);
public void LogoutAdmin(SessionToken token) => AdminAccessDelegate.LogoutAdmin(token);
public List<User> GetUsers(SessionToken token, PagingData page) => AdminAccessDelegate.GetUsers(token, page);
public bool DelayPerformance(SessionToken token, Performance oldPerformance, Performance newPerformance) => AdminAccessDelegate.DelayPerformance(token, oldPerformance, newPerformance);
public List<User> SearchUsersPerKeyword(SessionToken token, string keyword) => AdminAccessDelegate.SearchUsersPerKeyword(token, keyword);