public ActionResult DisplayRequired(Guid?id, string breadcrumb, string callingActionDisplayName, bool displayOnly, bool?recalled, string defaultController, string defaultAction, int?maxDistance, double?maxAge) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Dictionary <int, string> breadcrumbDictionary = new Dictionary <int, string>(); breadcrumbDictionary.Add(0, breadcrumb); if (!recalled.HasValue) { defaultController = "GeneralInfo"; defaultAction = "Required"; } RequiredListingDetailsViewModel model = RequiredListingViewHelpers.CreateRequiredListingDetailsViewModel(db, id.Value, breadcrumb, displayOnly, Request, defaultController, defaultAction, callingActionDisplayName, breadcrumbDictionary, recalled, User, maxDistance, maxAge); if (model == null) { return(HttpNotFound()); } ViewBag.ListingType = "General Information"; return(View(model)); }
public ActionResult DisplayRequired([Bind(Include = "Breadcrumb,DisplayOnly,CallingAction,CallingController,CallingActionDisplayName,ListingId,ItemDescription,ItemCategory,ItemType,QuantityRequired,QuantityFulfilled,QuantityOutstanding,UoM,RequiredFrom,RequiredTo,AcceptDamagedItems,AcceptOutOfDateItems,CollectionAvailable,ListingStatus,ListingOrganisationPostcode")] RequiredListingDetailsViewModel model) { if (Request.Form["resetbutton"] != null) { return(RedirectToAction("DisplayRequired", "ManageInfo", new { id = model.ListingId, breadcrumb = model.Breadcrumb, callingActionDisplayName = model.CallingActionDisplayName, displayOnly = model.DisplayOnly, recalled = true, defaultController = model.CallingController, defaultAction = model.CallingAction })); } if (ModelState.IsValid) { RequiredListingHelpers.UpdateRequiredListing(db, model, User); return(RedirectToAction(model.CallingAction, model.CallingController)); } return(View(model)); }
public static RequiredListing UpdateRequiredListing(ApplicationDbContext db, RequiredListingDetailsViewModel model, IPrincipal user) { RequiredListing listing = GetRequiredListing(db, model.ListingId); decimal qtyRequired; decimal.TryParse(model.QuantityRequired.ToString(), out qtyRequired); decimal qtyFulfilled; decimal.TryParse(model.QuantityFulfilled.ToString(), out qtyFulfilled); decimal qtyOutstanding; decimal.TryParse(model.QuantityOutstanding.ToString(), out qtyOutstanding); if (listing != null) { listing.ItemDescription = model.ItemDescription; listing.ItemCategory = model.ItemCategory; listing.ItemType = model.ItemType; listing.QuantityRequired = qtyRequired; listing.QuantityFulfilled = qtyFulfilled; listing.QuantityOutstanding = qtyOutstanding; listing.UoM = model.UoM; listing.RequiredFrom = model.RequiredFrom; listing.RequiredTo = model.RequiredTo; listing.AcceptDamagedItems = model.AcceptDamagedItems; listing.AcceptOutOfDateItems = model.AcceptOutOfDateItems; listing.CollectionAvailable = model.CollectionAvailable; listing.ListingStatus = model.ListingStatus; listing.ListingOrganisationPostcode = model.ListingOrganisationPostcode; listing.RecordChange = GeneralEnums.RecordChangeEnum.ListingStatusChange; listing.RecordChangeBy = AppUserHelpers.GetAppUserIdFromUser(user); listing.RecordChangeOn = DateTime.Now; db.Entry(listing).State = EntityState.Modified; db.SaveChanges(); } return(listing); }
public ActionResult DisplayRequired([Bind(Include = "MaxDistance,MaxAge,Breadcrumb,DisplayOnly,CallingAction,CallingController,CallingActionDisplayName,ListingId,ItemDescription,ItemCategory,ItemType,QuantityRequired,QuantityFulfilled,QuantityOutstanding,UoM,RequiredFrom,RequiredTo,AcceptDamagedItems,AcceptOutOfDateItems,CollectionAvailable,ListingStatus,ListingOrganisationPostcode,OfferDescription,OfferId,OfferQty,OfferCounterQty,OfferStatus")] RequiredListingDetailsViewModel model) { if (Request.Form["resetbutton"] != null) { return(RedirectToAction("DisplayRequired", "GeneralInfo", new { id = model.ListingId, breadcrumb = model.Breadcrumb, callingActionDisplayName = model.CallingActionDisplayName, displayOnly = model.DisplayOnly, recalled = true, defaultController = model.CallingController, defaultAction = model.CallingAction, maxDistance = model.MaxDistance, maxAge = model.MaxAge })); } if (ModelState.IsValid) { if (Request.Form["saveofferbutton"] != null) { OfferHelpers.CreateOffer(db, model.ListingId, model.OfferQty, ListingTypeEnum.Requirement, null, User); } if (Request.Form["savebutton"] != null) { RequiredListingHelpers.UpdateRequiredListing(db, model, User); } return(RedirectToAction(model.CallingAction, model.CallingController)); } return(View(model)); }
public static RequiredListingDetailsViewModel CreateRequiredListingDetailsViewModel(ApplicationDbContext db, Guid listingId, string breadcrumb, bool displayOnly, HttpRequestBase request, string controllerValue, string actionValue, string callingActionDisplayName, Dictionary <int, string> breadcrumbDictionary, bool?recalled, IPrincipal user, int?maxDistance, double?maxAge) { RequiredListing listing = RequiredListingHelpers.GetRequiredListing(db, listingId); if (listing != null) { //Set up the calling fields if (!recalled.HasValue) { GeneralHelpers.GetCallingDetailsFromRequest(request, controllerValue, actionValue, out controllerValue, out actionValue); } AppUser recordChangedBy = AppUserHelpers.GetAppUser(db, listing.RecordChangeBy); AppUser listingOriginatorAppUser = AppUserHelpers.GetAppUser(db, listing.ListingOriginatorAppUserId); RequiredListingDetailsViewModel model = new RequiredListingDetailsViewModel() { Breadcrumb = breadcrumb, DisplayOnly = displayOnly, ListingId = listing.ListingId, ItemDescription = listing.ItemDescription, ItemCategory = listing.ItemCategory, ItemType = listing.ItemType, QuantityRequired = listing.QuantityRequired, QuantityFulfilled = listing.QuantityFulfilled, QuantityOutstanding = listing.QuantityOutstanding, UoM = listing.UoM, RequiredFrom = listing.RequiredFrom, RequiredTo = listing.RequiredTo, AcceptDamagedItems = listing.AcceptDamagedItems, AcceptOutOfDateItems = listing.AcceptOutOfDateItems, CollectionAvailable = listing.CollectionAvailable, ListingStatus = listing.ListingStatus, ListingOrganisationPostcode = listing.ListingOrganisationPostcode, RecordChange = listing.RecordChange, RecordChangeOn = listing.RecordChangeOn, RecordChangeByName = recordChangedBy.FirstName + " " + recordChangedBy.LastName, RecordChangeByEmail = recordChangedBy.LoginEmail, ListingOriginatorAppUserName = listingOriginatorAppUser.FirstName + " " + listingOriginatorAppUser.LastName, ListingOriginatorAppUserEmail = listingOriginatorAppUser.LoginEmail, ListingOriginatorDateTime = listing.ListingOriginatorDateTime, CallingController = controllerValue, CallingAction = actionValue, CallingActionDisplayName = callingActionDisplayName, BreadcrumbTrail = breadcrumbDictionary }; if (controllerValue == "GeneralInfo" && actionValue == "Required") { //Get user info for the offer side of the display AppUser currentUser = AppUserHelpers.GetAppUser(db, user); Organisation currentOrg = OrganisationHelpers.GetOrganisation(db, currentUser.OrganisationId); Offer offer = OfferHelpers.GetOfferForListingByUser(db, listing.ListingId, currentUser.AppUserId, currentOrg.OrganisationId, currentOrg.ListingPrivacyLevel); if (offer == null) { model.OfferDescription = "Make a request"; } else { model.OfferDescription = "Current request"; model.OfferId = offer.OfferId; model.OfferQty = offer.CurrentOfferQuantity; model.OfferCounterQty = offer.CounterOfferQuantity; model.OfferStatus = offer.OfferStatus; } } return(model); } else { return(null); } }