public static bool ToMaintenanceLogDTO(MaintenanceLog input, MaintenanceLogDTO output) { if (input == null) { return(false); } output.DateEnd = input.DateEnd; output.DateStart = input.DateStart; output.LogId = input.LogId; output.Reason = input.Reason; return(true); }
public void AutoMaintenanceProcess() { if (DateTime.UtcNow.Hour == ConfigurationObject.AutoRestartHour - 1 && DateTime.UtcNow.Minute == 50) { MaintenanceLogDTO maintenance = new MaintenanceLogDTO { DateEnd = DateTime.UtcNow.AddMinutes(25), DateStart = DateTime.UtcNow.AddMinutes(9), Reason = "Daily restart and cleanup routines." }; DAOFactory.MaintenanceLogDAO.Insert(maintenance); } }
public IEnumerable <MaintenanceLogDTO> LoadAll() { using (OpenNosContext context = DataAccessHelper.CreateContext()) { List <MaintenanceLogDTO> result = new List <MaintenanceLogDTO>(); foreach (MaintenanceLog maintenanceLog in context.MaintenanceLog.AsNoTracking()) { MaintenanceLogDTO dto = new MaintenanceLogDTO(); Mapper.Mappers.MaintenanceLogMapper.ToMaintenanceLogDTO(maintenanceLog, dto); result.Add(dto); } return(result); } }
public MaintenanceLogDTO LoadFirst() { try { using (OpenNosContext context = DataAccessHelper.CreateContext()) { MaintenanceLogDTO dto = new MaintenanceLogDTO(); if (Mapper.Mappers.MaintenanceLogMapper.ToMaintenanceLogDTO(context.MaintenanceLog.AsNoTracking().FirstOrDefault(m => m.DateEnd > DateTime.UtcNow), dto)) { return(dto); } return(null); } } catch (Exception e) { Logger.Error(e); return(null); } }
private void ExecuteHandler(ClientSession session) { if (_isParsed) { Logger.LogUserEvent("GMCOMMAND", session.GenerateIdentity(), $"[Maintenance]Delay: {Delay} Duration: {Duration} Reason: {Reason}"); DateTime dateStart = DateTime.UtcNow.AddMinutes(Delay); MaintenanceLogDTO maintenance = new MaintenanceLogDTO { DateEnd = dateStart.AddMinutes(Duration), DateStart = dateStart, Reason = Reason }; DAOFactory.MaintenanceLogDAO.Insert(maintenance); session.SendPacket(session.Character.GenerateSay(Language.Instance.GetMessageFromKey("DONE"), 10)); } else { session.SendPacket(session.Character.GenerateSay(ReturnHelp(), 10)); } }
public MaintenanceLogDTO Insert(MaintenanceLogDTO maintenanceLog) { try { using (OpenNosContext context = DataAccessHelper.CreateContext()) { MaintenanceLog entity = new MaintenanceLog(); Mapper.Mappers.MaintenanceLogMapper.ToMaintenanceLog(maintenanceLog, entity); context.MaintenanceLog.Add(entity); context.SaveChanges(); if (Mapper.Mappers.MaintenanceLogMapper.ToMaintenanceLogDTO(entity, maintenanceLog)) { return(maintenanceLog); } return(null); } } catch (Exception e) { Logger.Error(e); return(null); } }
private void ExecuteHandler(ClientSession session) { string BuildServersPacket(string username, int sessionId, bool ignoreUserName) { string channelPacket = CommunicationServiceClient.Instance.RetrieveRegisteredWorldServers(username, sessionId, ignoreUserName); if (channelPacket?.Contains(':') != true) { // no need for this as in release the debug is ignored eitherway //if (ServerManager.Instance.IsDebugMode) Logger.Debug("Could not retrieve Worldserver groups. Please make sure they've already been registered."); // find a new way to display this message //Session.SendPacket($"fail {Language.Instance.GetMessageFromKey("NO_WORLDSERVERS")}"); session.SendPacket($"fail {Language.Instance.GetMessageFromKey("IDERROR")}"); } return(channelPacket); } UserDTO user = new UserDTO { Name = Name, Password = ConfigurationManager.AppSettings["UseOldCrypto"] == "true" ? CryptographyBase.Sha512(LoginCryptography.GetPassword(Password)).ToUpper() : Password }; AccountDTO loadedAccount = DAOFactory.AccountDAO.LoadByName(user.Name); if (loadedAccount?.Password.ToUpper().Equals(user.Password) == true) { string ipAddress = session.IpAddress; DAOFactory.AccountDAO.WriteGeneralLog(loadedAccount.AccountId, ipAddress, null, GeneralLogType.Connection, "LoginServer"); //check if the account is connected if (!CommunicationServiceClient.Instance.IsAccountConnected(loadedAccount.AccountId)) { AuthorityType type = loadedAccount.Authority; PenaltyLogDTO penalty = DAOFactory.PenaltyLogDAO.LoadByAccount(loadedAccount.AccountId).FirstOrDefault(s => s.DateEnd > DateTime.UtcNow && s.Penalty == PenaltyType.Banned); if (penalty != null) { // find a new way to display date of ban session.SendPacket($"fail {string.Format(Language.Instance.GetMessageFromKey("BANNED"), penalty.Reason, penalty.DateEnd.ToString("yyyy-MM-dd-HH:mm"))}");; } else { switch (type) { case AuthorityType.Unconfirmed: { session.SendPacket($"fail {Language.Instance.GetMessageFromKey("NOTVALIDATE")}"); } break; case AuthorityType.Banned: { session.SendPacket($"fail {string.Format(Language.Instance.GetMessageFromKey("BANNED"), penalty.Reason, penalty.DateEnd.ToString("yyyy-MM-dd-HH:mm"))}");; } break; case AuthorityType.Closed: { session.SendPacket($"fail {Language.Instance.GetMessageFromKey("IDERROR")}"); } break; default: { if (loadedAccount.Authority == AuthorityType.User || loadedAccount.Authority == AuthorityType.BitchNiggerFaggot) { MaintenanceLogDTO maintenanceLog = DAOFactory.MaintenanceLogDAO.LoadFirst(); if (maintenanceLog != null) { // find a new way to display date and reason of maintenance session.SendPacket($"fail {string.Format(Language.Instance.GetMessageFromKey("MAINTENANCE"), maintenanceLog.DateEnd, maintenanceLog.Reason)}"); return; } } int newSessionId = SessionFactory.Instance.GenerateSessionId(); Logger.Debug(string.Format(Language.Instance.GetMessageFromKey("CONNECTION"), user.Name, newSessionId)); try { ipAddress = ipAddress.Substring(6, ipAddress.LastIndexOf(':') - 6); CommunicationServiceClient.Instance.RegisterAccountLogin(loadedAccount.AccountId, newSessionId, ipAddress); } catch (Exception ex) { Logger.Error("General Error SessionId: " + newSessionId, ex); } string[] clientData = ClientData.Split('.'); bool ignoreUserName = clientData.Length < 3 ? false : short.TryParse(clientData[3], out short clientVersion) && (clientVersion < 3075 || ConfigurationManager.AppSettings["UseOldCrypto"] == "true"); session.SendPacket(BuildServersPacket(user.Name, newSessionId, ignoreUserName)); } break; } } } else { session.SendPacket($"fail {Language.Instance.GetMessageFromKey("ALREADY_CONNECTED")}"); } } else { session.SendPacket($"fail {Language.Instance.GetMessageFromKey("IDERROR")}"); } }