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));
        }
Beispiel #6
0
        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");
            }
        }
Beispiel #10
0
 public void Save(FeaturedImage image)
 {
     Collection.InsertOne(image);
 }