예제 #1
0
        public SaveResult InsertOrUpdate(ref MateDTO mate)
        {
            try
            {
                using (OpenNosContext context = DataAccessHelper.CreateContext())
                {
                    long MateId = mate.MateId;
                    Mate entity = context.Mate.FirstOrDefault(c => c.MateId.Equals(MateId));

                    if (entity == null)
                    {
                        mate = insert(mate, context);
                        return(SaveResult.Inserted);
                    }

                    mate = update(entity, mate, context);
                    return(SaveResult.Updated);
                }
            }
            catch (Exception e)
            {
                Logger.Error(string.Format(Language.Instance.GetMessageFromKey("INSERT_ERROR"), mate, e.Message), e);
                return(SaveResult.Error);
            }
        }
예제 #2
0
 public Mate(MateDTO input)
 {
     PveLockObject  = new object();
     Buff           = new ThreadSafeSortedList <short, Buff>();
     Attack         = input.Attack;
     CanPickUp      = input.CanPickUp;
     CharacterId    = input.CharacterId;
     Defence        = input.Defence;
     Direction      = input.Direction;
     Experience     = input.Experience;
     Hp             = input.Hp;
     IsSummonable   = input.IsSummonable;
     IsTeamMember   = input.IsTeamMember;
     Level          = input.Level;
     Loyalty        = input.Loyalty;
     MapX           = input.MapX;
     MapY           = input.MapY;
     MateId         = input.MateId;
     MateType       = input.MateType;
     Mp             = input.Mp;
     Name           = input.Name;
     NpcMonsterVNum = input.NpcMonsterVNum;
     Skin           = input.Skin;
     GenerateMateTransportId();
 }
예제 #3
0
        public static bool ToMate(MateDTO input, Mate output)
        {
            if (input == null)
            {
                return(false);
            }

            output.Attack         = input.Attack;
            output.CanPickUp      = input.CanPickUp;
            output.CharacterId    = input.CharacterId;
            output.Defence        = input.Defence;
            output.Direction      = input.Direction;
            output.Experience     = input.Experience;
            output.Hp             = input.Hp;
            output.IsSummonable   = input.IsSummonable;
            output.IsTeamMember   = input.IsTeamMember;
            output.Level          = input.Level;
            output.Loyalty        = input.Loyalty;
            output.MapX           = input.MapX;
            output.MapY           = input.MapY;
            output.MateId         = input.MateId;
            output.MateType       = input.MateType;
            output.Mp             = input.Mp;
            output.Name           = input.Name;
            output.NpcMonsterVNum = input.NpcMonsterVNum;
            output.Skin           = input.Skin;

            return(true);
        }
예제 #4
0
        private static MateDTO insert(MateDTO mate, OpenNosContext context)
        {
            Mate entity = new Mate();

            Mapper.Mappers.MateMapper.ToMate(mate, entity);
            context.Mate.Add(entity);
            context.SaveChanges();
            if (Mapper.Mappers.MateMapper.ToMateDTO(entity, mate))
            {
                return(mate);
            }

            return(null);
        }
예제 #5
0
 public IEnumerable <MateDTO> LoadByCharacterId(long characterId)
 {
     using (OpenNosContext context = DataAccessHelper.CreateContext())
     {
         List <MateDTO> result = new List <MateDTO>();
         foreach (Mate mate in context.Mate.Where(s => s.CharacterId == characterId))
         {
             MateDTO dto = new MateDTO();
             Mapper.Mappers.MateMapper.ToMateDTO(mate, dto);
             result.Add(dto);
         }
         return(result);
     }
 }
예제 #6
0
        private static MateDTO update(Mate entity, MateDTO character, OpenNosContext context)
        {
            if (entity != null)
            {
                Mapper.Mappers.MateMapper.ToMate(character, entity);
                context.SaveChanges();
            }

            if (Mapper.Mappers.MateMapper.ToMateDTO(entity, character))
            {
                return(character);
            }

            return(null);
        }
예제 #7
0
파일: Mate.cs 프로젝트: McIks/NosTale4All
 public Mate(MateDTO input)
 {
     Attack         = input.Attack;
     CanPickUp      = input.CanPickUp;
     CharacterId    = input.CharacterId;
     Defence        = input.Defence;
     Direction      = input.Direction;
     Experience     = input.Experience;
     Hp             = input.Hp;
     IsSummonable   = input.IsSummonable;
     IsTeamMember   = input.IsTeamMember;
     Level          = input.Level;
     Loyalty        = input.Loyalty;
     MapX           = input.MapX;
     MapY           = input.MapY;
     MateId         = input.MateId;
     MateType       = input.MateType;
     Mp             = input.Mp;
     Name           = input.Name;
     NpcMonsterVNum = input.NpcMonsterVNum;
     Skin           = input.Skin;
 }