Esempio n. 1
0
        public AlexaAccountDTO AddOrUpdateAccount(AlexaRequestDTO alexaRequestDto)
        {
            using (var context = new RealmContext())
            {
                var alexaAccount = context.AlexaAccounts.AsNoTracking()
                                   .SingleOrDefault(o => o.AlexaUserId == alexaRequestDto.UserId);

                if (alexaAccount != null)
                {
                    alexaAccount.RequestCount++;
                    alexaAccount.LastRequest          = DateTime.UtcNow;
                    context.Entry(alexaAccount).State = EntityState.Modified;
                }
                else
                {
                    alexaAccount = new AlexaAccount()
                    {
                        AccountId    = Guid.NewGuid(),
                        AlexaUserId  = alexaRequestDto.UserId,
                        DateCreated  = DateTime.UtcNow,
                        LastRequest  = DateTime.UtcNow,
                        RequestCount = 1
                    };

                    context.Entry(alexaAccount).State = EntityState.Added;
                }
                context.SaveChanges();

                return(Mapper.Map <AlexaAccountDTO>(alexaAccount));
            }
        }
Esempio n. 2
0
        public PlayerDTO CreatePlayer(AlexaAccountDTO alexaAccountDto)
        {
            using (var context = new RealmContext())
            {
                var defaultPlayer = context.Players.AsNoTracking().Single(o => o.PlayerId == Guid.Empty);

                var player = new Player
                {
                    PlayerId     = Guid.NewGuid(),
                    Name         = defaultPlayer.Name,
                    MapRefId     = defaultPlayer.MapRefId,
                    LocationX    = defaultPlayer.LocationX,
                    LocationY    = defaultPlayer.LocationY,
                    Level        = defaultPlayer.Level,
                    Verbosity    = defaultPlayer.Verbosity,
                    Gold         = defaultPlayer.Gold,
                    Energy       = defaultPlayer.Energy,
                    Toughness    = defaultPlayer.Toughness,
                    AccountRefId = alexaAccountDto.AccountId
                };

                context.Entry(player).State = EntityState.Added;
                context.SaveChanges();

                var playerDto = Mapper.Map <PlayerDTO>(player);
                playerDto.Inventories = new List <InventoryDTO>();

                return(playerDto);
            }
        }
Esempio n. 3
0
        public void LogRequest(AlexaRequestDTO alexaRequestDto)
        {
            using (var context = new RealmContext())
            {
                var alexaRequest = Mapper.Map <AlexaRequest>(alexaRequestDto);
                alexaRequest.DateCreated          = DateTime.UtcNow;
                context.Entry(alexaRequest).State = EntityState.Added;

                context.SaveChanges();
            }
        }
Esempio n. 4
0
        public void DeleteInventoryItem(Guid inventoryId)
        {
            using (var context = new RealmContext())
            {
                var result = context.Inventories.AsNoTracking()
                             .SingleOrDefault(o => o.InventoryId == inventoryId);

                context.Entry(result).State = EntityState.Deleted;
                context.SaveChanges();
            }
        }
Esempio n. 5
0
 public void DeleteCellItem(Guid cellItemId)
 {
     using (var context = new RealmContext())
     {
         var result = context.CellItems.AsNoTracking()
                      .SingleOrDefault(o => o.CellItemId == cellItemId);
         if (result == null)
         {
             throw new ArgumentNullException(nameof(result));
         }
         context.Entry(result).State = EntityState.Deleted;
         context.SaveChanges();
     }
 }
Esempio n. 6
0
        public CellItemDTO AddOrUpdateCellItem(CellItemDTO cellItemDto)
        {
            using (var context = new RealmContext())
            {
                var result = context.CellItems.AsNoTracking()
                             .SingleOrDefault(o => o.CellItemId == cellItemDto.CellItemId);

                if (result != null)
                {
                    result = Mapper.Map(cellItemDto, result);
                    context.Entry(result).State = EntityState.Modified;
                }
                else
                {
                    cellItemDto.CellItemId = Guid.NewGuid();
                    result = Mapper.Map <CellItem>(cellItemDto);
                    context.Entry(result).State = EntityState.Added;
                }
                context.SaveChanges();

                return(Mapper.Map <CellItemDTO>(result));
            }
        }
Esempio n. 7
0
        public InventoryDTO AddOrUpdateInventory(InventoryDTO inventoryDto)
        {
            using (var context = new RealmContext())
            {
                var result = context.Inventories.AsNoTracking()
                             .SingleOrDefault(o => o.InventoryId == inventoryDto.InventoryId);

                if (result != null)
                {
                    result = Mapper.Map(inventoryDto, result);
                    context.Entry(result).State = EntityState.Modified;
                }
                else
                {
                    inventoryDto.InventoryId = Guid.NewGuid();
                    result = Mapper.Map <Inventory>(inventoryDto);
                    context.Entry(result).State = EntityState.Added;
                }
                context.SaveChanges();

                return(Mapper.Map <InventoryDTO>(result));
            }
        }
Esempio n. 8
0
        public PlayerDTO UpdatePlayer(PlayerDTO playerDto)
        {
            using (var context = new RealmContext())
            {
                var player = context.Players.AsNoTracking()
                             .Single(o => o.PlayerId == playerDto.PlayerId);

                Mapper.Map(playerDto, player);

                context.Entry(player).State = EntityState.Modified;
                context.SaveChanges();

                return(Mapper.Map <PlayerDTO>(player));
            }
        }