public ActionResultBase Process(GameState state, GameConfiguration config) { BuyItemActionResult result = new BuyItemActionResult(); if (!CanApply(state, config)) { result.IsSeccessful = false; return(result); } ShopConfiguration shop = GetShop(config); Item newItem = new Item(); newItem.ItemType = _type; newItem.Price = shop.Price; result.EffectResult = GetItemEffect(shop); switch (_type) { case ItemTypes.Armor: newItem.Health = result.EffectResult; break; case ItemTypes.Weapon: newItem.Damage = result.EffectResult; break; } state.CurrentPlayer.ApplyItem(newItem); state.CurrentPlayer.DecreaseCoins(shop.Price); return(result); }
public async Task <IHttpActionResult> DeleteShopConfiguration(long id) { CurrentIdentity identity = getIdentity(); if (identity.role == "Admin") { } else { Shop shop = await db.Shops.FirstOrDefaultAsync(p => p.UserId == identity.userId); if (shop == null) { return(ResponseMessage(getHttpResponse(HttpStatusCode.NotFound))); } if (shop.Id != id) { return(ResponseMessage(getHttpResponse(HttpStatusCode.Unauthorized))); } } ShopConfiguration shopConfiguration = await db.ShopConfigurations.FindAsync(id); if (shopConfiguration == null) { return(ResponseMessage(getHttpResponse(HttpStatusCode.NotFound))); } db.ShopConfigurations.Remove(shopConfiguration); await db.SaveChangesAsync(); return(Ok(shopConfiguration)); }
public ActionResult DeleteConfirmed(Guid id) { ShopConfiguration shopConfiguration = db.ShopConfigurations.Find(id); shopConfiguration.IsDeleted = true; shopConfiguration.DeletionDate = DateTime.Now; db.SaveChanges(); return(RedirectToAction("Index")); }
public async Task <IHttpActionResult> DeleteShop(long id) { CurrentIdentity identity = getIdentity(); Shop shop = await db.Shops.FindAsync(id); if (shop == null) { return(ResponseMessage(getHttpResponse(HttpStatusCode.NotFound))); } if (identity.userId == shop.UserId || identity.role == "Admin") { List <Product> products = await db.Products.Where(p => p.ShopId == id).ToListAsync(); //Delete all products in shop if (products != null) { foreach (var product in products) { IList <Image> images = await db.Images.Where(p => p.ProductId == product.Id).ToListAsync(); IList <ProductsToCategory> categories = await db.ProductsToCategories.Where(p => p.ProductId == product.Id).ToListAsync(); ShopConfiguration shopConfig = await db.ShopConfigurations.FindAsync(id); //Delete shop config if it exsists if (shopConfig != null) { db.ShopConfigurations.Remove(shopConfig); await db.SaveChangesAsync(); } db.Products.Remove(product); await db.SaveChangesAsync(); foreach (var image in images) { db.Images.Remove(image); } foreach (var category in categories) { db.ProductsToCategories.Remove(category); } await db.SaveChangesAsync(); } } db.Shops.Remove(shop); await db.SaveChangesAsync(); return(Ok(shop)); } return(ResponseMessage(getHttpResponse(HttpStatusCode.Unauthorized))); }
public bool CanApply(GameState state, GameConfiguration config) { ShopConfiguration shop = GetShop(config); if (state.CurrentPlayer.Coins < shop.Price) { return(false); } return(true); }
protected int GetItemEffect(ShopConfiguration shop) { int delta = shop.EffectTo - shop.EffectFrom; if (delta == 0) { return(shop.EffectTo); } return(shop.EffectFrom + Generator.Next(0, delta)); }
public async Task <IHttpActionResult> GetShopConfiguration(long id) { ShopConfiguration shopConfiguration = await db.ShopConfigurations.FindAsync(id); if (shopConfiguration == null) { return(ResponseMessage(getHttpResponse(HttpStatusCode.NotFound))); } return(Ok(shopConfiguration)); }
public static string GetZarinpalCode() { ShopConfiguration shopConfiguration = db.ShopConfigurations.FirstOrDefault(current => current.Name.ToLower() == "zarinpal"); if (shopConfiguration != null) { return(shopConfiguration.Value); } return(string.Empty); }
public static decimal GetShipingAmount() { ShopConfiguration shopConfiguration = db.ShopConfigurations.FirstOrDefault(current => current.Name.ToLower() == "shipingamount"); if (shopConfiguration != null) { return(Convert.ToDecimal(shopConfiguration.Value)); } return(0); }
public ActionResult Edit([Bind(Include = "Id,Title,Name,Value,IsActive,CreationDate,LastModifiedDate,IsDeleted,DeletionDate,Description")] ShopConfiguration shopConfiguration) { if (ModelState.IsValid) { shopConfiguration.LastModifiedDate = DateTime.Now; shopConfiguration.IsDeleted = false; db.Entry(shopConfiguration).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(shopConfiguration)); }
public async Task <IHttpActionResult> PostShopConfiguration(ShopConfiguration shopConfiguration) { CurrentIdentity identity = getIdentity(); if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (identity.role == "Admin") { } else { Shop shop = await db.Shops.FirstOrDefaultAsync(p => p.UserId == identity.userId); if (shop == null) { return(ResponseMessage(getHttpResponse(HttpStatusCode.NotFound))); } if (shop.Id != shopConfiguration.ShopId) { return(ResponseMessage(getHttpResponse(HttpStatusCode.Unauthorized))); } } if (shopConfiguration.LayoutId < 0) { return(ResponseMessage(getHttpResponse(HttpStatusCode.BadRequest))); } db.ShopConfigurations.Add(shopConfiguration); try { await db.SaveChangesAsync(); } catch (DbUpdateException) { if (ShopConfigurationExists(shopConfiguration.ShopId)) { return(ResponseMessage(getHttpResponse(HttpStatusCode.Conflict))); } else { throw; } } return(CreatedAtRoute("WSApi", new { id = shopConfiguration.ShopId }, shopConfiguration)); }
// GET: ShopConfigurations/Delete/5 public ActionResult Delete(Guid?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } ShopConfiguration shopConfiguration = db.ShopConfigurations.Find(id); if (shopConfiguration == null) { return(HttpNotFound()); } return(View(shopConfiguration)); }
public ActionResult Create([Bind(Include = "Id,Title,Name,Value,IsActive,CreationDate,LastModifiedDate,IsDeleted,DeletionDate,Description")] ShopConfiguration shopConfiguration) { if (ModelState.IsValid) { shopConfiguration.IsDeleted = false; shopConfiguration.CreationDate = DateTime.Now; shopConfiguration.LastModifiedDate = DateTime.Now; shopConfiguration.Id = Guid.NewGuid(); db.ShopConfigurations.Add(shopConfiguration); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(shopConfiguration)); }
public async Task <IHttpActionResult> GetOwnShopConfig() { CurrentIdentity identity = getIdentity(); Shop shop = await db.Shops.FirstOrDefaultAsync(p => p.UserId == identity.userId); if (shop == null) { return(ResponseMessage(getHttpResponse(HttpStatusCode.NotFound))); } ShopConfiguration shopConfiguration = await db.ShopConfigurations.FindAsync(shop.Id); if (shopConfiguration == null) { return(ResponseMessage(getHttpResponse(HttpStatusCode.NotFound))); } return(Ok(shopConfiguration)); }
/// <summary> /// Return shop info by ItemType /// </summary> private ShopConfiguration GetShop(GameConfiguration config) { ShopConfiguration shop = null; switch (_type) { case ItemTypes.Armor: shop = config.Shops.Armor; break; case ItemTypes.Weapon: shop = config.Shops.Weapon; break; } if (shop == null) { throw new ArgumentOutOfRangeException("itenType", "Item should be weapon or armor"); } return(shop); }
public ShopsConfiguration() { Armor = new ShopConfiguration(); Weapon = new ShopConfiguration(); Heal = new ShopConfiguration(); }
public async Task <IHttpActionResult> PutShopConfiguration(long id, ShopConfiguration shopConfiguration) { CurrentIdentity identity = getIdentity(); if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (identity.role == "Admin") { } else { Shop shop = await db.Shops.FirstOrDefaultAsync(p => p.UserId == identity.userId); if (shop == null) { return(ResponseMessage(getHttpResponse(HttpStatusCode.NotFound))); } if (shop.Id != shopConfiguration.ShopId) { return(ResponseMessage(getHttpResponse(HttpStatusCode.Unauthorized))); } } if (shopConfiguration.LayoutId < 0) { return(ResponseMessage(getHttpResponse(HttpStatusCode.BadRequest))); } Shop shopCurrent = await db.Shops.FindAsync(id); if (shopCurrent == null) { return(ResponseMessage(getHttpResponse(HttpStatusCode.NotFound))); } if (identity.userId == shopCurrent.UserId || identity.role == "Admin") { db.Entry(shopConfiguration).State = EntityState.Modified; try { await db.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ShopConfigurationExists(id)) { return(ResponseMessage(getHttpResponse(HttpStatusCode.NotFound))); } else { throw; } } return(StatusCode(HttpStatusCode.NoContent)); } return(ResponseMessage(getHttpResponse(HttpStatusCode.Unauthorized))); }