/// <summary> /// Get items used for specific shelter along with other details. /// </summary> /// <param name="shelterId">ShelterID for which to retrieive items.</param> public static List <SheltersDescInfo> GetShelterItemsForReport(int shelterId) { var slNo = 1; var items = new List <SheltersDescInfo>(); foreach (var sd in OimsDataContext.Shelterdescriptions.Where(item => item.P_Id.Equals(shelterId))) { // Get item's details string iName, iSize, iMarking; SetItemValues(sd.I_Id, out iName, out iSize, out iMarking); var sdesc = sd; var sdi = new SheltersDescInfo { ShelterDescKey = slNo, ShelterId = sd.P_Id, ItemName = iName, Size = iSize, Marking = iMarking, ItemQuantity = sd.I_Qty, InStock = ItemRepository.GetItemTotalQuantity(sd.I_Id), Vendor = ItemRepository.Items.Where(i => i.ItemId.Equals(sdesc.I_Id)).Select(i => i.Vendor).FirstOrDefault(), UpdatedOn = ItemRepository.Items.Where(i => i.ItemId.Equals(sd.I_Id)).Select(i => i.UpdatedOn).FirstOrDefault() }; items.Add(sdi); slNo++; } // Order list by to show items in ascending order return(items.OrderBy(sd => sd.ShelterDescKey).ToList()); }
/// <summary> /// Get items used for specific shelter along with other details. /// </summary> /// <param name="shelterId">ShelterID for which to retrieive items.</param> public static List <SheltersDescInfo> GetShelterItemsDetail(int shelterId) { var items = new List <SheltersDescInfo>(); foreach (var sd in OimsDataContext.Shelterdescriptions.Where(item => item.P_Id.Equals(shelterId))) { var shd = sd; // For fixing compiler version issue (suggested by ReSharper) // Get item's details string iName, iSize, iMarking; SetItemValues(shd.I_Id, out iName, out iSize, out iMarking); var sdi = new SheltersDescInfo { ShelterDescKey = shd.PD_Id, ShelterId = shd.P_Id, ItemId = shd.I_Id, ItemName = iName, Size = iSize, Marking = iMarking, ItemQuantity = shd.I_Qty, InStock = ItemRepository.GetItemTotalQuantity(shd.I_Id), Vendor = ItemRepository.Items.Where(i => i.ItemId.Equals(shd.I_Id)).Select(i => i.Vendor).FirstOrDefault() }; items.Add(sdi); } return(items); }
/// <summary> /// Get items used for specific shelter. /// </summary> /// <param name="shelterId">ShelterID for which to retrieive items.</param> /// <param name="qtyMultiple">Number of shelter user is requesting.</param> public static List <SheltersDescInfo> GetShelterItemsByKey(int shelterId, int qtyMultiple) { var slNo = 1; var items = new List <SheltersDescInfo>(); foreach (var sd in OimsDataContext.Shelterdescriptions.Where(item => item.P_Id.Equals(shelterId))) { // Get item's details string iName, iSize, iMarking; SetItemValues(sd.I_Id, out iName, out iSize, out iMarking); var sdi = new SheltersDescInfo { ShelterDescKey = sd.PD_Id, ShelterId = sd.P_Id, ItemId = slNo, ItemName = iName, Size = iSize, Marking = iMarking, ItemQuantity = sd.I_Qty, EnterQuantity = Convert.ToString(sd.I_Qty * qtyMultiple) }; items.Add(sdi); slNo++; } return(items); }
/// <summary> /// Update row of grid. /// </summary> public ActionResult UpdateGridForShelterItems([ModelBinder(typeof(DevExpressEditorsBinder))] SheltersDescInfo model, [ModelBinder(typeof(DevExpressEditorsBinder))] int shelterId) { ViewData["ShelterId"] = shelterId; try { if (ModelState.IsValid) { if (ShelterRepository.IsUniqueItem(model, Action.Update)) { ShelterRepository.UpdateShelterItem(model); } else { TempData["ErrorMessage"] = Supervisor.SErrorMsgForItemExist; } } else { TempData["ErrorMessage"] = Common.ErrorMsgForGrid; } } catch (Exception exc) { TempData["ErrorMessage"] = exc.Message; Logger.LogError(exc, "Error while updating shelter's items from Supervisor zone"); } return(PartialView("Grid/_GridForShelterItems", GetShelterItems(shelterId))); }
/// <summary> /// New row of grid. /// </summary> public ActionResult NewGridForShelterItems([ModelBinder(typeof(DevExpressEditorsBinder))] SheltersDescInfo model, [ModelBinder(typeof(DevExpressEditorsBinder))] int shelterId) { ViewData["ShelterId"] = shelterId; try { ModelState["InStock"].Errors.Clear(); // Don't want to check InStock if (ModelState.IsValid) { if (ShelterRepository.IsUniqueItem(model, Action.New)) { ShelterRepository.NewShelterItem(model); } else { TempData["ErrorMessage"] = Supervisor.SErrorMsgForItemExist; } } else { TempData["ErrorMessage"] = Common.ErrorMsgForGrid; } } catch (Exception exc) { TempData["ErrorMessage"] = exc.Message; Logger.LogError(exc, "Error while saving new shelter item in Shelters grid from Supervisor zone"); } return(PartialView("Grid/_GridForShelterItems", GetShelterItems(shelterId))); }
/// <summary> /// Delete product with specific product id. /// </summary> public static void DeleteShelterItem(SheltersDescInfo shelterItem) { var editProductItem = GetEditableShelterItem(shelterItem.ShelterId, shelterItem.ShelterDescKey, shelterItem.ItemId); if (editProductItem == null) { return; } OimsDataContext.Delete(editProductItem); OimsDataContext.SaveChanges(); }
/// <summary> /// Insert new shelter item for specific shelter. /// </summary> public static void NewShelterItem(SheltersDescInfo sheltertem) { var newShelterItem = new Shelterdescription { P_Id = sheltertem.ShelterId, I_Id = sheltertem.ItemId, I_Qty = sheltertem.ItemQuantity }; OimsDataContext.Add(newShelterItem); OimsDataContext.SaveChanges(); }
/// <summary> /// Update shelter's item. /// </summary> public static void UpdateShelterItem(SheltersDescInfo shelterItem) { var editProductItem = GetEditableShelterItem(shelterItem.ShelterId, shelterItem.ShelterDescKey, 0); if (editProductItem == null) { return; } editProductItem.I_Id = shelterItem.ItemId; editProductItem.I_Qty = shelterItem.ItemQuantity; OimsDataContext.SaveChanges(); }
/// <summary> /// Delete row of grid. /// </summary> public ActionResult DeleteGridForShelterItems([ModelBinder(typeof(DevExpressEditorsBinder))] SheltersDescInfo model, [ModelBinder(typeof(DevExpressEditorsBinder))] int shelterId) { ViewData["ShelterId"] = shelterId; try { ShelterRepository.DeleteShelterItem(model); } catch (Exception exc) { TempData["DeleteErrorMsg"] = exc.Message; Logger.LogError(exc, "Error while deleting shelter's items from Supervisor zone"); } return(PartialView("Grid/_GridForShelterItems", GetShelterItems(shelterId))); }
/// <summary> /// Check if the item modified for current product is unique for same. That is, it not exist already. /// </summary> /// <param name="sDesc">ProductDescInfo model.</param> /// <param name="action">Name of action for which need to check.</param> /// <returns>Return true if item is unique else false.</returns> public static bool IsUniqueItem(SheltersDescInfo sDesc, Action action) { var unique = false; switch (action) { case Action.New: // Check if ItemId selected already exists for this ShelterId var siN = (from sd in ShelterItems where sd.I_Id == sDesc.ItemId && sd.P_Id == sDesc.ShelterId select sd).FirstOrDefault(); unique = siN == null; break; case Action.Update: var siU = (from sd in ShelterItems where sd.I_Id == sDesc.ItemId && sd.P_Id == sDesc.ShelterId select sd).FirstOrDefault(); if (siU != null) { if (siU.PD_Id == sDesc.ShelterDescKey) { unique = true; } } else { unique = true; } break; } return(unique); }