public CharacterDTO LoadBySlot(long accountId, byte slot) { try { using (OpenNosContext context = DataAccessHelper.CreateContext()) { CharacterDTO dto = new CharacterDTO(); if (Mapper.Mappers.CharacterMapper.ToCharacterDTO(context.Character.AsNoTracking().SingleOrDefault(c => c.AccountId.Equals(accountId) && c.Slot.Equals(slot) && c.State.Equals((byte)CharacterState.Active)), dto)) { return(dto); } } } catch (Exception e) { // for now we shall ban the user that has 2 characters per slot and ask him to // explain what he did to make it happen. might also be saving issue. Logger.Error($"There should be only 1 character per slot, AccountId: {accountId} Slot: {slot}", e); using (OpenNosContext context = DataAccessHelper.CreateContext()) { PenaltyLogDTO penalty = new PenaltyLogDTO() { AccountId = accountId, DateStart = DateTime.UtcNow, DateEnd = DateTime.UtcNow.AddYears(15), Penalty = PenaltyType.Banned, Reason = $"OpenBuster: Multiple characters in slot:{slot} recognized", AdminName = "OpenBuster" }; PenaltyLog penaltyLog = new PenaltyLog(); if (Mapper.Mappers.PenaltyLogMapper.ToPenaltyLog(penalty, penaltyLog)) { context.PenaltyLog.Add(penaltyLog); context.SaveChanges(); } } } return(null); }
public SaveResult InsertOrUpdate(ref PenaltyLogDTO log) { try { using (OpenNosContext context = DataAccessHelper.CreateContext()) { int id = log.PenaltyLogId; PenaltyLog entity = context.PenaltyLog.FirstOrDefault(c => c.PenaltyLogId.Equals(id)); if (entity == null) { log = insert(log, context); return(SaveResult.Inserted); } log = update(entity, log, context); return(SaveResult.Updated); } } catch (Exception e) { Logger.Error(string.Format(Language.Instance.GetMessageFromKey("UPDATE_PENALTYLOG_ERROR"), log.PenaltyLogId, e.Message), e); return(SaveResult.Error); } }
private static PenaltyLogDTO update(PenaltyLog entity, PenaltyLogDTO penaltylog, OpenNosContext context) { if (entity != null) { Mapper.Mappers.PenaltyLogMapper.ToPenaltyLog(penaltylog, entity); context.SaveChanges(); } if (Mapper.Mappers.PenaltyLogMapper.ToPenaltyLogDTO(entity, penaltylog)) { return(penaltylog); } return(null); }
private static PenaltyLogDTO insert(PenaltyLogDTO penaltylog, OpenNosContext context) { PenaltyLog entity = new PenaltyLog(); Mapper.Mappers.PenaltyLogMapper.ToPenaltyLog(penaltylog, entity); context.PenaltyLog.Add(entity); context.SaveChanges(); if (Mapper.Mappers.PenaltyLogMapper.ToPenaltyLogDTO(entity, penaltylog)) { return(penaltylog); } return(null); }
public static bool ToPenaltyLogDTO(PenaltyLog input, PenaltyLogDTO output) { if (input == null) { return(false); } output.AccountId = input.AccountId; output.AdminName = input.AdminName; output.DateEnd = input.DateEnd; output.DateStart = input.DateStart; output.Penalty = input.Penalty; output.PenaltyLogId = input.PenaltyLogId; output.Reason = input.Reason; return(true); }
public DeleteResult Delete(int penaltyLogId) { try { using (OpenNosContext context = DataAccessHelper.CreateContext()) { PenaltyLog PenaltyLog = context.PenaltyLog.FirstOrDefault(c => c.PenaltyLogId.Equals(penaltyLogId)); if (PenaltyLog != null) { context.PenaltyLog.Remove(PenaltyLog); context.SaveChanges(); } return(DeleteResult.Deleted); } } catch (Exception e) { Logger.Error(string.Format(Language.Instance.GetMessageFromKey("DELETE_PENALTYLOG_ERROR"), penaltyLogId, e.Message), e); return(DeleteResult.Error); } }