コード例 #1
0
 protected AdvanceController(bool dbContextRequried)
 {
     if (dbContextRequried)
     {
         db = new ReviewAppsEntities();
     }
 }
コード例 #2
0
        public ActionResult GetTags(string id)
        {
            if (SessionNames.IsValidationExceed("GetTags", 500) || string.IsNullOrWhiteSpace(id))
            {
                return(Json(null, JsonRequestBehavior.AllowGet));
            }

            using (var db = new ReviewAppsEntities()) {
                var tags = db.Tags.Where(n => n.TagDisplay.StartsWith(id))
                           .Select(n => n.TagDisplay).Take(10).ToArray();

                var list = new List <string>(25);
                foreach (var tag in tags)
                {
                    list.Add(tag);
                }
                if (id.Length > 3)
                {
                    var tags2 =
                        db.Tags.Where(n => n.TagDisplay.Contains(id) && tags.All(found => found != n.TagDisplay))
                        .Select(n => n.TagDisplay).Take(10).ToArray();
                    foreach (var tag in tags2)
                    {
                        list.Add(tag);
                    }
                }
                return(Json(list, JsonRequestBehavior.AllowGet));
            }
            ;
        }
コード例 #3
0
        protected BaseLogicComponent(ApplicationDbContext identityDb, ReviewAppsEntities weReviewDb,
                                     bool initializeErrorCollector)
        {
            _initializeErrorCollector = initializeErrorCollector;

            if (identityDb != null)
            {
                IdentityDb = identityDb;
            }

            if (weReviewDb != null)
            {
                WeReviewDb = weReviewDb;
            }

            var dbType = typeof(TContext);

            if (dbType == typeof(ReviewAppsEntities))
            {
                db = weReviewDb as TContext;
            }
            else if (dbType == typeof(ApplicationDbContext))
            {
                db = identityDb as TContext;
            }

            if (_initializeErrorCollector)
            {
                ErrorCollector = new ErrorCollector();
            }
        }
コード例 #4
0
 public void RemoveDraftRelatedtoApp(Guid uploadGuid)
 {
     new Thread(() => {
         using (var db2 = new ReviewAppsEntities()) {
             db2.Database.ExecuteSqlCommand("DELETE FROM AppDraft WHERE UploadGuid = @p0", uploadGuid);
         }
     }).Start();
 }
コード例 #5
0
 public void RemoveTempUploadRelatedtoApp(Guid uploadGuid)
 {
     new Thread(() => {
         using (var db2 = new ReviewAppsEntities()) {
             db2.Database.ExecuteSqlCommand("DELETE FROM TempUpload WHERE RelatingUploadGuidForDelete = @p0",
                                            uploadGuid);
         }
     }).Start();
 }
コード例 #6
0
 public async Task <ActionResult> UnBlockApp(long id)
 {
     using (var db2 = new ReviewAppsEntities()) {
         if (ModerationLogics.UnBlockApp(id, true, db2))
         {
             return(View("Done"));
         }
     }
     return(HttpNotFound());
 }
コード例 #7
0
        // GET: Sitemap
        public ActionResult Index()
        {
            var modifiedDate = DateTime.Now;
            var appUrl       = AppVar.Url;

            var sitemapItems = new List <SitemapItem>(900)
            {
                new SitemapItem(appUrl, modifiedDate, SitemapChangeFrequency.Daily, 1),
                new SitemapItem(appUrl + "/profiles", modifiedDate, SitemapChangeFrequency.Daily),
                new SitemapItem(appUrl + "/apps", modifiedDate, SitemapChangeFrequency.Daily),
                new SitemapItem(appUrl + "/app/post", modifiedDate, SitemapChangeFrequency.Daily),
                new SitemapItem(appUrl + "/app/drafts", modifiedDate, SitemapChangeFrequency.Daily),
                new SitemapItem(appUrl + "/apps/category", modifiedDate, SitemapChangeFrequency.Daily),
                new SitemapItem(appUrl + "/platforms", modifiedDate, SitemapChangeFrequency.Daily),
                new SitemapItem(appUrl + "/about", modifiedDate, SitemapChangeFrequency.Daily),
                new SitemapItem(appUrl + "/report", modifiedDate, SitemapChangeFrequency.Daily),
                new SitemapItem(appUrl + "/search", modifiedDate, SitemapChangeFrequency.Daily),
                new SitemapItem(appUrl + "/sitemap", modifiedDate, SitemapChangeFrequency.Daily)
                //new SitemapItem(appUrl+"/Sitemap.xml",modifiedDate, SitemapChangeFrequency.Daily),
            };
            var algorithms = new Logics();

            using (var db = new ReviewAppsEntities()) {
                var max = db.FeaturedImages.Count();
                var homePageGalleryApps = algorithms.GetHomePageGalleryImages(db, max);

                sitemapItems.AddRange(
                    homePageGalleryApps.Select(app => new SitemapItem(app.GetAbsoluteUrl(), modifiedDate)));

                var latestApps = algorithms.GetLatestApps(db, 50);
                if (latestApps != null)
                {
                    sitemapItems.AddRange(latestApps.Select(app => new SitemapItem(app.GetAbsoluteUrl(), modifiedDate)));
                }

                var topApps = algorithms.GetTopRatedApps(db, 50);
                if (topApps != null)
                {
                    sitemapItems.AddRange(topApps.Select(app => new SitemapItem(app.GetAbsoluteUrl(), modifiedDate)));
                }

                var categories = Statics.AppCategoriesCache;
                sitemapItems.AddRange(
                    categories.Select(
                        category => new SitemapItem(appUrl + "/apps/category/" + category.Slug, modifiedDate)));

                var top30Developers = algorithms.GetTopDevelopers(db);
                sitemapItems.AddRange(
                    top30Developers.Select(
                        developer => new SitemapItem(appUrl + "/profiles/" + developer, modifiedDate)));
            }

            return(new SitemapResult(sitemapItems));
        }
コード例 #8
0
 protected AdvanceController(bool dbContextRequried, bool errorCollectorRequried)
 {
     if (errorCollectorRequried)
     {
         ErrorCollector = new ErrorCollector();
     }
     if (dbContextRequried)
     {
         db = new ReviewAppsEntities();
     }
 }
コード例 #9
0
 public async Task <ActionResult> BlockReview(long id)
 {
     using (var db2 = new ReviewAppsEntities()) {
         Review review;
         if (ModerationLogics.BlockReview(id, true, db2, out review))
         {
             ViewBag.info = "deleted review ( " + review.Comments + " ).";
             return(View("Done"));
         }
     }
     return(HttpNotFound());
 }
コード例 #10
0
 /// <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);
 }
コード例 #11
0
        public ActionResult GetValidUrlEditing(App app)
        {
            var max     = 60;
            var min     = 3;
            var id      = app.AppName;
            var message = "Username is valid for registration.";

            try {
                if (id == null || id.Length < 5)
                {
                    goto ReturnInvalid;
                }
                if (!AppVar.Setting.IsInTestingEnvironment)
                {
                    if (SessionNames.IsValidationExceed("GetValidUrl"))
                    {
                        return(Json(Validator.GetErrorValidationExceedMessage(), JsonRequestBehavior.AllowGet));
                    }
                }

                if (id.Length >= min && id.Length <= max)
                {
                    var url = GetFriendlyURLFromString(id);
                    if (app.Url != null && app.Url.Equals(url))
                    {
                        goto ReturnValid;
                    }
                    using (var db = new ReviewAppsEntities()) {
                        var exist =
                            db.Apps.Any(
                                n =>
                                n.AppID != app.AppID && n.PlatformID == app.PlatformID &&
                                n.CategoryID == app.CategoryID && n.Url == url &&
                                n.PlatformVersion == app.PlatformVersion);
                        if (!exist)
                        {
                            goto ReturnValid;
                        }
                        goto ReturnInvalid;
                    }
                }
            } catch (Exception ex) {
                AppVar.Mailer.HandleError(ex, "Validate GetValidUrl App-Editing");
            }
            //found e false
ReturnValid:
            return(Json(Validator.GetSuccessMessage("App name is already exist or not valid."),
                        JsonRequestBehavior.AllowGet)); // return true;

ReturnInvalid:
            return(Json(Validator.GetErrorMessage("App name is not valid."), JsonRequestBehavior.AllowGet));
        }
コード例 #12
0
 public void ProcessImageAsyc(Gallery gallery)
 {
     new Thread(() => {
         using (var db2 = new ReviewAppsEntities()) {
             var category = db2.GalleryCategories.Find(gallery.GalleryCategoryID);
             if (category != null)
             {
                 Statics.UProcessorAdvertiseImages.ResizeImageAndProcessImage(gallery, category);
                 Statics.UProcessorAdvertiseImages.RemoveTempImage(gallery, true);
             }
         }
     }).Start();
 }
コード例 #13
0
        public ActionResult Reply(long id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            var feedback = db.Feedbacks.Find(id);

            if (feedback == null)
            {
                return(HttpNotFound());
            }
            if (!feedback.IsViewed)
            {
                // new feedback now mark as viewed
                feedback = MarkAsViewedInternal(feedback);
            }

            if (feedback.HasAppOrReviewReport)
            {
                var relation = db.FeedbackAppReviewRelations.FirstOrDefault(n => n.FeedbackID == feedback.FeedbackID);
                ViewBag.relation = relation;
                if (relation != null)
                {
                    using (var db2 = new ReviewAppsEntities()) {
                        if (relation.HasAppId)
                        {
                            ViewBag.app = db2.Apps.Find(relation.AppID);
                        }
                        else
                        {
                            var review = db2.Reviews.Find(relation.ReviewID);
                            if (review != null)
                            {
                                ViewBag.app    = db2.Apps.Find(review.AppID);
                                ViewBag.review = review;
                            }
                        }
                    }
                }
            }

            var viewOf = ViewTapping(ViewStates.Edit, feedback);

            return(View(feedback));
        }
コード例 #14
0
        public ActionResult GetAppUrl(App app)
        {
            if (SessionNames.IsValidationExceed("GetAppUrl", 500) || app == null)
            {
                return(Json(null, JsonRequestBehavior.AllowGet));
            }
            using (var db = new ReviewAppsEntities()) {
                var algorithms = new Logics();

                app.Url = algorithms.GenerateHyphenUrlStringValid(app, db);

                var sender = new {
                    url = app.GetAbsoluteUrl()
                };
                return(Json(sender, JsonRequestBehavior.AllowGet));
            }
            ;
        }
コード例 #15
0
        protected BaseLogicComponent(bool identityDbInitialize, bool weReviewDbInitialize,
                                     bool initializeErrorCollector)
        {
            _identityDbInitialize     = identityDbInitialize;
            _weReviewDbInitialize     = weReviewDbInitialize;
            _initializeErrorCollector = initializeErrorCollector;

            if (_identityDbInitialize)
            {
                IdentityDb = new ApplicationDbContext();
            }

            if (_weReviewDbInitialize)
            {
                WeReviewDb = new ReviewAppsEntities();
            }
            if (_initializeErrorCollector)
            {
                ErrorCollector = new ErrorCollector();
            }
        }
コード例 #16
0
 internal static void CompletionAfter(ApplicationUser userIndetity, bool getRoleFromRegistration, string role)
 {
     using (var db = new ReviewAppsEntities()) {
         var user = new User();
         user.UserID    = userIndetity.UserID;
         user.FirstName = userIndetity.FirstName;
         user.Phone     = userIndetity.PhoneNumber;
         user.LastName  = userIndetity.LastName;
         user.UserName  = userIndetity.UserName;
         db.Users.Add(user);
         if (db.SaveChanges(user) < 0)
         {
             AppVar.Mailer.NotifyDeveloper(
                 "Can't save user in the WeReviewApp Database. Id maybe already present.",
                 "Can't save user in the WeReviewApp Database. Id maybe already present.", "Fatal Error");
         }
         else
         {
             UserManager.ClearUserSessions();
         }
     }
 }
コード例 #17
0
        /// <summary>
        ///     Called specifically from Post save or edit save
        ///     not from AdditionNeccessaryFields
        /// </summary>
        /// <param name="appId"></param>
        /// <param name="uploadGuid"></param>
        /// <param name="tagString">Given tag list as comma separated value.</param>
        private void ManageTagsInDatabase(long appId, Guid uploadGuid, string tagString)
        {
            new Thread(() => {
                if (!string.IsNullOrWhiteSpace(tagString))
                {
                    using (var db2 = new ReviewAppsEntities()) {
                        // remove any previous tag relation with this app.
                        // remove all previous tag relation-ship with this app.
                        db2.Database.ExecuteSqlCommand("DELETE FROM TagAppRelation WHERE AppID=@p0", appId);
                        var tagsList = tagString.Split(";,".ToCharArray());
                        foreach (var tag in tagsList)
                        {
                            string tagDisplay   = Logics.GetAllUpperCaseTitle(tag);
                            var tagFromDatabase = db2.Tags.FirstOrDefault(n => n.TagDisplay == tagDisplay);
                            if (tagFromDatabase == null)
                            {
                                // creating tag
                                // if tag not exist in the database then create one.
                                tagFromDatabase = new Tag {
                                    TagDisplay = Logics.GetAllUpperCaseTitle(tagDisplay)
                                };
                                db2.Tags.Add(tagFromDatabase);
                            }

                            //db2.SaveChanges(); //remove this for testing if works

                            // add tag relation with this app
                            var newTagRel = new TagAppRelation();
                            //newTagRel.TagID = tagFromDatabase.TagID; // may not need to bind the tags id because it will be done by EF
                            newTagRel.AppID = appId;
                            tagFromDatabase.TagAppRelations.Add(newTagRel);
                            db2.SaveChanges();
                        }
                    }
                }
            }).Start();
        }
コード例 #18
0
 protected BaseLogicComponent(ReviewAppsEntities weReviewDb,
                              bool initializeErrorCollector)
     : this(null, weReviewDb, initializeErrorCollector)
 {
 }
コード例 #19
0
        public static bool BlockReview(long reviewId, bool isSendEmailWhenBlockIsSuccessful, ReviewAppsEntities db,
                                       out Review review)
        {
            review = db.Reviews.Find(reviewId);
            var likeDislikes = db.ReviewLikeDislikes.Where(n => n.ReviewID == reviewId);

            foreach (var likeDislike in likeDislikes)
            {
                db.ReviewLikeDislikes.Remove(likeDislike);
            }
            db.Reviews.Remove(review);
            if (db.SaveChanges() > -1)
            {
                if (isSendEmailWhenBlockIsSuccessful)
                {
                    var subject  = "Your review has been removed.";
                    var mailBody = "Sorry! Your review <q>" + review.Comments + "</q> is inappropriate thus removed.";
                    SendAsyncEmailToUser(review.UserID, subject, mailBody);
                }
                return(true);
            }
            return(false);
        }
コード例 #20
0
        public static bool BlockApp(long appId, bool isSendEmailWhenBlockIsSuccessful, ReviewAppsEntities db)
        {
            var app = db.Apps.Find(appId);

            app.IsBlocked = true;
            app.Tags      = "none";
            if (db.SaveChanges() > -1)
            {
                if (isSendEmailWhenBlockIsSuccessful)
                {
                    var subject  = "Your app has been blocked.";
                    var mailBody = "Sorry! Your app <a href='" + app.GetAbsoluteUrl() + "'>" + app.AppName +
                                   "</a> is inappropriate thus blocked.";
                    SendAsyncEmailToUser(app.PostedByUserID, subject, mailBody);
                }
                return(true);
            }
            return(false);
        }