private void AddNecessaryFields(FeaturedImage featuredImage = null) { if (featuredImage != null) { featuredImage.UserID = UserManager.GetLoggedUserId(); } }
/// <summary> /// Better approach to save things into database(than db.SaveChanges()) for this controller. /// </summary> /// <param name="ViewStates">Say the view state, where it is calling from.</param> /// <param name="FeaturedImage">Your model information to send in email to developer when failed to save.</param> /// <returns>If successfully saved returns true or else false.</returns> private bool SaveDatabase(ViewStates view, FeaturedImage featuredImage = null) { // working those at HttpPost time. switch (view) { case ViewStates.Create: break; case ViewStates.Edit: break; case ViewStates.Delete: break; } try { var changes = db.SaveChanges(featuredImage); if (changes > 0) { return(true); } } catch (Exception ex) { throw new Exception("Message : " + ex.Message + " Inner Message : " + ex.InnerException.Message); } return(false); }
/// <summary> /// Always tap once before going into the view. /// </summary> /// <param name="ViewStates">Say the view state, where it is calling from.</param> /// <param name="FeaturedImage">Gives the model if it is a editing state or creating posting state or when deleting.</param> /// <returns>If successfully saved returns true or else false.</returns> private bool ViewTapping(ViewStates view, FeaturedImage featuredImage = null) { switch (view) { case ViewStates.Index: break; case ViewStates.Create: break; case ViewStates.CreatePost: // before saving it AddNecessaryFields(featuredImage); break; case ViewStates.Edit: break; case ViewStates.Details: break; case ViewStates.EditPost: // before saving it AddNecessaryFields(featuredImage); break; case ViewStates.Delete: break; } return(true); }
public ActionResult Edit(FeaturedImage featuredImage) { var viewOf = ViewTapping(ViewStates.EditPost, featuredImage); if (ModelState.IsValid) { featuredImage.UserID = User.GetUserID(); db.Entry(featuredImage).State = EntityState.Modified; var state = SaveDatabase(ViewStates.Edit, featuredImage); if (state) { AppVar.SetSavedStatus(ViewBag, _editedSaved); // Saved Successfully. } else { AppVar.SetErrorStatus(ViewBag, _editedError); // Failed to Save } return(RedirectToAction("Index")); } GetDropDowns(featuredImage); AppVar.SetErrorStatus(ViewBag, _editedError); // Failed to save return(View(featuredImage)); }
public ActionResult Create(FeaturedImage featuredImage) { var viewOf = ViewTapping(ViewStates.CreatePost, featuredImage); GetDropDowns(featuredImage); if (db.FeaturedImages.Any(n => n.AppID == featuredImage.AppID)) { AppVar.SetErrorStatus(ViewBag, "This app is already exist. Can't save."); // Saved Successfully. return(View(featuredImage)); } featuredImage.UserID = User.GetUserID(); if (ModelState.IsValid) { db.FeaturedImages.Add(featuredImage); var state = SaveDatabase(ViewStates.Create, featuredImage); if (state) { AppVar.SetSavedStatus(ViewBag, _createdSaved); // Saved Successfully. } else { AppVar.SetErrorStatus(ViewBag, _createdError); // Failed to save } return(View(featuredImage)); } AppVar.SetErrorStatus(ViewBag, _createdError); // Failed to Save return(View(featuredImage)); }
public Task <object> HandleAsync(SetFeaturedImageCommand model) { var image = new FeaturedImage { Date = DateTime.Now, ImageId = model.Id }; Repository.Save(image); return(Task.FromResult <object>(null)); }
/// <summary> /// Returns true when saving is successful. /// </summary> /// <param name="appId"></param> /// <param name="isFeatured"></param> /// <param name="isSendEmailWhenOperationIsSuccessful"></param> /// <param name="db"></param> /// <returns></returns> internal static bool AppFeatured(long appId, bool isFeatured, bool isSendEmailWhenOperationIsSuccessful, ReviewAppsEntities db) { if (UserManager.IsAuthenticated()) { var featured = db.FeaturedImages.FirstOrDefault(n => n.AppID == appId); var user = UserManager.GetCurrentUser(); if (featured == null) { featured = new FeaturedImage { AppID = appId, IsFeatured = isFeatured, UserID = user.UserID }; db.FeaturedImages.Add(featured); } else { featured.IsFeatured = isFeatured; featured.UserID = user.UserID; db.Entry(featured).State = EntityState.Modified; } var saved = db.SaveChanges() != -1; if (saved && isSendEmailWhenOperationIsSuccessful) { var app = db.Apps.Find(appId); if (app != null) { string subject, body, appDisplayName; appDisplayName = "Your app '" + app.AppName + "'"; if (featured.IsFeatured) { subject = "Congrats! " + appDisplayName + " has been selected as featured app and will be display at our front page."; body = "Hi , <br><br>" + appDisplayName + "has been selected as featured app and will be displayed at our front page. Your app url : " + app.GetAbsoluteUrl(); } else { subject = "Sorry ! " + appDisplayName + " has been removed from featured app."; body = "Hi , <br><br>" + appDisplayName + "has been removed from our front page featured apps list. Your app url : " + app.GetAbsoluteUrl(); } SendAsyncEmailToUser(app.PostedByUserID, subject, body); } } } return(false); }
public async Task CallingFeaturedImageQueryGetReturnsFeaturedImage() { var image = new FeaturedImage { Date = DateTime.Now, ImageId = ObjectId.GenerateNewId() }; var repositoryMock = new Mock <IFeaturedImageRepository>(); repositoryMock.Setup(x => x.GetLatest()).Returns(image); var query = new FeaturedImageQuery(repositoryMock.Object); var featuredImage = await query.Get(null).ConfigureAwait(false); Assert.That(featuredImage, Is.Not.Null); Assert.That(featuredImage.Date, Is.Not.Null); Assert.That(featuredImage.ImageId, Is.Not.Null); Assert.That(featuredImage.ImageId, Is.Not.EqualTo(ObjectId.Empty)); Assert.That(featuredImage.Date.Year, Is.GreaterThan(1)); }
public void GetDropDowns(FeaturedImage featuredImage = null) { var apps = db.Apps .AsParallel() .Select(n => new { n.AppID, AppName = n.GetAppUrlWithoutHostName() }).ToList(); if (featuredImage != null) { ViewBag.AppID = new SelectList(apps, "AppID", "AppName", featuredImage.AppID); } else { ViewBag.AppID = new SelectList(apps, "AppID", "AppName"); } }
public void Save(FeaturedImage image) { Collection.InsertOne(image); }