Ejemplo n.º 1
0
        public ActionResult EditUser(string UserName)
        {
            // themes : deserialize/send list of themes, plus send active theme, plus send list of tags/keywords
            var userId               = User.Identity.GetUserId();
            var userXtrctThemes      = new Arabizer().loaddeserializeM_XTRCTTHEME_DAPPERSQL(userId);
            var userActiveXtrctTheme = userXtrctThemes.Find(m => m.CurrentActive == "active");

            @ViewBag.UserXtrctThemes  = userXtrctThemes;
            @ViewBag.XtrctThemesPlain = userXtrctThemes.Select(m => new SelectListItem {
                Text = m.ThemeName.Trim(), Selected = m.ThemeName.Trim() == userActiveXtrctTheme.ThemeName.Trim() ? true : false
            });
            @ViewBag.UserActiveXtrctTheme = userActiveXtrctTheme;

            // Fetch the data for fbPages for all themes for that user
            var fbFluencerAsTheme = new Arabizer().loadDeserializeT_FB_INFLUENCERs_DAPPERSQL(userId);

            ViewBag.AllInfluenceVert = fbFluencerAsTheme;

            //
            if (UserName == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ExpandedUserDTO objExpandedUserDTO = GetUser(UserName);

            if (objExpandedUserDTO == null)
            {
                return(HttpNotFound());
            }
            return(View(objExpandedUserDTO));
        }
Ejemplo n.º 2
0
        public IHttpActionResult ExtractNers(/*[FromBody]*/ string token, String text)
        {
            // are we allowed to use the API
            var errorMessage = string.Empty;

            if (!ValidateToken(token, "Extract", out errorMessage))
            {
                dynamic errexpando = new ExpandoObject();
                errexpando.StatusCode   = HttpStatusCode.NotAcceptable;
                errexpando.ErrorMessage = errorMessage.Trim(new char[] { '\"' });
                return(Ok(errexpando));
            }

            //
            M_ARABIZIENTRY arabiziEntry = new M_ARABIZIENTRY
            {
                ArabiziText      = text,
                ArabiziEntryDate = DateTime.Now
            };

            // call real work
            // use expando to merge the json ouptuts : arabizi + arabic + latin words
            // plus also M_ARABICDARIJAENTRY_TEXTENTITYs
            dynamic expando = new Arabizer().train(arabiziEntry, null, thisLock: thisLock);

            // keep only arabizi + arabic + ner
            expando.M_ARABICDARIJAENTRY_LATINWORDs = null;

            //
            return(Ok(expando));
        }
Ejemplo n.º 3
0
        public void ut_180523_test_extract_from_20_comments()
        {
            // Id message
            // 2195511010686419_2195728087331378 ياك انتا السي كبور داير فيها الكوبل هههه
            // 2195511010686419_2195718037332383 موقاااااااااااطعووووووون
            // 2195511010686419_2195713473999506   😂😂😂😂😂😂😂😂منيييتكوم ماعارت باش تاتفسدكوم وييلي علا قلت مايظار
            // 2195511010686419_2195679240669596 كبور هو المستفيد الوحيد من القناة ادا تطلبنا بمقاطعتك لانه حقا عين الصواب عيينا من هد كبور
            // 2195511010686419_2195675124003341   🦍🦍🦍 ناري على جيل ديال
            // 2195511010686419_2195673627336824 وحدة من جوج يالأخت خدامة ف 2M أو شي حد من العائلة، أو الأخت تعاني من أعراض الإستحمار المزمن🤣. عشنا حتى شفنا الغوغاء و الجهال تعطي دروس فالوطنية 😂
            // 2195511010686419_2195661134004740 لا لي دوزيم في رمضان
            // 2195511010686419_2195659540671566 انا دوزيم كنشد فيها غير حي البهجة و ولاد علي هدو لي فيها زوونين.....الاولى حسن منها
            // 2195511010686419_2195659327338254 الزبالة هذه
            // 2195511010686419_2195659127338274 خصنا نديرو مقاطعة المسلسلات التركية في دوزيم حيت لا علاقة 1000حلقة وقصة لا علاقة غير زعت وصافي
            String commentsIds = "'2195511010686419_2195728087331378',"
                                 + "'2195511010686419_2195718037332383'";

            // + "2195511010686419_2195718037332383,"

            /*+ "2195511010686419_2195713473999506,"
             + "2195511010686419_2195679240669596,"
             + "2195511010686419_2195675124003341,"
             + "2195511010686419_2195673627336824,"
             + "2195511010686419_2195661134004740,"
             + "2195511010686419_2195659540671566,"
             + "2195511010686419_2195659327338254,"
             + "2195511010686419_2195659127338274"*/;
            String ScrapyWebEntitiesConnectionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=ScrapyWeb;Integrated Security=True";
            // new TrainController().Train_FB_Comments_woBingGoogleRosette(commentsIds);
            // get list of not yet translated comments with the specified ids (can be one comment to translate or can be many checked)
            var arabizer = new Arabizer(ScrapyWebEntitiesConnectionString);
            List <FBFeedComment> comments = arabizer.loaddeserializeT_FB_Comments_By_Ids_DAPPERSQL(commentsIds);

            foreach (var comment in comments)
            {
                // in FB, some posts text can be empty (image, ...)
                if (String.IsNullOrWhiteSpace(comment.message))
                {
                    continue;
                }

                // MC081217 translate via train to populate NER, analysis data, ...
                // Arabizi to arabic script via direct call to perl script
                var res = arabizer.train_woBingGoogleRosette(comment.message.Trim(), comment.Id, (int)EntryType.comment);
                if (res.status == false)
                {
                    Assert.Fail();
                }

                //
                string translatedstring = res.ArabicDarijaText;
                arabizer.SaveTranslatedComments(comment.Id, translatedstring);
            }
        }
Ejemplo n.º 4
0
        public ActionResult Create()
        {
            ExpandedUserDTO objExpandedUserDTO = new ExpandedUserDTO();

            ViewBag.Roles = GetAllRolesAsSelectList();

            // themes : deserialize/send list of themes, plus send active theme, plus send list of tags/keywords
            var userId               = User.Identity.GetUserId();
            var userXtrctThemes      = new Arabizer().loaddeserializeM_XTRCTTHEME_DAPPERSQL(userId);
            var userActiveXtrctTheme = userXtrctThemes.Find(m => m.CurrentActive == "active");

            @ViewBag.UserXtrctThemes  = userXtrctThemes;
            @ViewBag.XtrctThemesPlain = userXtrctThemes.Select(m => new SelectListItem {
                Text = m.ThemeName.Trim(), Selected = m.ThemeName.Trim() == userActiveXtrctTheme.ThemeName.Trim() ? true : false
            });
            @ViewBag.UserActiveXtrctTheme = userActiveXtrctTheme;

            return(View(objExpandedUserDTO));
        }
        //
        // GET: /Manage/Index
        public async Task <ActionResult> Index(ManageMessageId?message)
        {
            ViewBag.StatusMessage =
                message == ManageMessageId.ChangePasswordSuccess ? "Your password has been changed."
                : message == ManageMessageId.SetPasswordSuccess ? "Your password has been set."
                : message == ManageMessageId.SetTwoFactorSuccess ? "Your two-factor authentication provider has been set."
                : message == ManageMessageId.Error ? "An error has occurred."
                : message == ManageMessageId.AddPhoneSuccess ? "Your phone number was added."
                : message == ManageMessageId.RemovePhoneSuccess ? "Your phone number was removed."
                : "";

            var userId = User.Identity.GetUserId();
            var model  = new IndexViewModel
            {
                HasPassword       = HasPassword(),
                PhoneNumber       = await UserManager.GetPhoneNumberAsync(userId),
                TwoFactor         = await UserManager.GetTwoFactorEnabledAsync(userId),
                Logins            = await UserManager.GetLoginsAsync(userId),
                BrowserRemembered = await AuthenticationManager.TwoFactorBrowserRememberedAsync(userId)
            };

            // needed to not crash vert menu : themes : deserialize/send list of themes, plus send active theme, plus send list of tags/keywords
            var userXtrctThemes      = new Arabizer().loaddeserializeM_XTRCTTHEME_DAPPERSQL(userId);
            var userActiveXtrctTheme = userXtrctThemes.Find(m => m.CurrentActive == "active");

            @ViewBag.UserXtrctThemes  = userXtrctThemes;
            @ViewBag.XtrctThemesPlain = userXtrctThemes.Select(m => new SelectListItem {
                Text = m.ThemeName.Trim(), Selected = m.ThemeName.Trim() == userActiveXtrctTheme.ThemeName.Trim() ? true : false
            });
            @ViewBag.UserActiveXtrctTheme = userActiveXtrctTheme;

            // Fetch the data for fbPages for all themes for that user
            var fbFluencerAsTheme = new Arabizer().loadDeserializeT_FB_INFLUENCERs_DAPPERSQL(userId);

            ViewBag.AllInfluenceVert = fbFluencerAsTheme;

            //
            return(View(model));
        }
Ejemplo n.º 6
0
        public IHttpActionResult ExtractSaNers(/*[FromBody]*/ string token, String text)
        {
            // are we allowed to use the API
            var errorMessage = string.Empty;

            if (!ValidateToken(token, "Extract", out errorMessage))
            {
                dynamic errexpando = new ExpandoObject();
                errexpando.StatusCode   = HttpStatusCode.NotAcceptable;
                errexpando.ErrorMessage = errorMessage.Trim(new char[] { '\"' });
                return(Ok(errexpando));
            }

            //
            M_ARABIZIENTRY arabiziEntry = new M_ARABIZIENTRY
            {
                ArabiziText      = text,
                ArabiziEntryDate = DateTime.Now
            };

            // call real work
            // use expando to merge the json ouptuts : arabizi + arabic + latin words
            // plus also M_ARABICDARIJAENTRY_TEXTENTITYs
            dynamic expando = new Arabizer().train(arabiziEntry, null, thisLock: thisLock);

            // keep only arabizi + arabic + ner
            expando.M_ARABICDARIJAENTRY_LATINWORDs = null;

            // limit to positive/negative ner
            List <M_ARABICDARIJAENTRY_TEXTENTITY> textEntities = expando.M_ARABICDARIJAENTRY_TEXTENTITYs;

            textEntities.RemoveAll(m => m.TextEntity.Type != "NEGATIVE" && m.TextEntity.Type != "POSITIVE" && m.TextEntity.Type != "SUPPORT" && m.TextEntity.Type != "SENSITIVE" && m.TextEntity.Type != "OPPOSE" && m.TextEntity.Type != "EXPLETIVE");
            expando.M_ARABICDARIJAENTRY_TEXTENTITYs = textEntities;

            //
            return(Ok(expando));
        }
Ejemplo n.º 7
0
        public ActionResult Index(string searchStringUserNameOrEmail, string currentFilter, int?page)
        {
            try
            {
                int intPage           = 1;
                int intPageSize       = 5;
                int intTotalItemCount = 0;

                //
                if (searchStringUserNameOrEmail != null)
                {
                    intPage = 1;
                }
                else if (currentFilter != null)
                {
                    searchStringUserNameOrEmail = currentFilter;
                    intPage = page ?? 1;
                }
                else
                {
                    searchStringUserNameOrEmail = "";
                    intPage = page ?? 1;
                }

                //
                ViewBag.CurrentFilter = searchStringUserNameOrEmail;
                List <ExpandedUserDTO> col_UserDTO = new List <ExpandedUserDTO>();
                int intSkip = (intPage - 1) * intPageSize;

                //
                var users  = UserManager.Users.Where(x => x.UserName.Contains(searchStringUserNameOrEmail));
                var lusers = users.ToList();

                // get register apps to make a join with users and with registerusers to get get last login time
                var registerApps  = new Arabizer().loaddeserializeRegisterApps_DAPPERSQL();
                var registerUsers = new Arabizer().loaddeserializeRegisterUsers_DAPPERSQL();
                var result0       = lusers.Join(registerApps, u => u.Id.ToUpper(), a => a.UserID.ToUpper(), (usr, app) => new
                {
                    app.UserID,
                    usr.UserName,
                    usr.Email,
                    usr.LockoutEndDateUtc,
                    app.TotalAppCallConsumed,
                    app.TotalAppCallLimit
                }).Join(registerUsers, r1 => r1.Email, u => u.EmailID, (res1, regusr) => new
                {
                    res1.UserID,
                    res1.UserName,
                    res1.Email,
                    res1.LockoutEndDateUtc,
                    res1.TotalAppCallConsumed,
                    res1.TotalAppCallLimit,
                    regusr.LastLoginTime
                });

                // themes count for the user
                var xtrctThemesCountPerUser = new Arabizer().loaddeserializeM_XTRCTTHEME_CountPerUser_DAPPERSQL();
                var result1 = result0.Join(xtrctThemesCountPerUser, r => r.UserID.ToUpper(), x => x.UserID.ToUpper(), (res2, xtcpu) => new
                {
                    res2.UserID,
                    res2.UserName,
                    res2.Email,
                    res2.LockoutEndDateUtc,
                    res2.TotalAppCallConsumed,
                    res2.TotalAppCallLimit,
                    res2.LastLoginTime,
                    xtcpu.CountPerUser
                });

                // fb pages count for the user & fb posts count for the user
                List <LM_CountPerTheme> fbPageCountPerTheme     = new Arabizer().loaddeserializeT_FB_INFLUENCER_CountPerTheme_DAPPERSQL();
                List <M_XTRCTTHEME>     xtrctThemes             = new Arabizer().loaddeserializeM_XTRCTTHEME_DAPPERSQL();
                List <LM_CountPerTheme> fbPostsCountPerTheme    = new Arabizer().loaddeserializeT_FB_POST_CountPerTheme_DAPPERSQL();
                List <LM_CountPerTheme> fbCommentsCountPerTheme = new Arabizer().loaddeserializeT_FB_Comments_CountPerTheme_DAPPERSQL();
                var usersToThemesToFbPagesCount = fbPageCountPerTheme.Join(
                    xtrctThemes,
                    fb => fb.fk_theme,
                    xt => xt.ID_XTRCTTHEME.ToString(),
                    (fb, xt) => new
                {
                    fb.fk_theme,
                    fb.CountPerTheme,
                    fkUserID = xt.UserID
                });
                var usersToThemesToFbPagesToFbPostsCount = usersToThemesToFbPagesCount.Join(
                    fbPostsCountPerTheme,
                    u => u.fk_theme,
                    fb => fb.fk_theme,
                    (u, fb) => new
                {
                    u.fk_theme,
                    u.CountPerTheme,
                    u.fkUserID,
                    FBPostsCountPerUser = fb.CountPerTheme
                });
                var usersToThemesToFbPagesToFbPostsToFBCommentsCount = usersToThemesToFbPagesToFbPostsCount.Join(
                    fbCommentsCountPerTheme,
                    u => u.fk_theme,
                    fb => fb.fk_theme,
                    (u, fb) => new
                {
                    u.fk_theme,
                    u.CountPerTheme,
                    u.fkUserID,
                    u.FBPostsCountPerUser,
                    FBCommentsCountPerUser = fb.CountPerTheme
                });
                var result3 = result1.GroupJoin(usersToThemesToFbPagesToFbPostsToFBCommentsCount,
                                                x => x.UserID,
                                                y => y.fkUserID, (x, y) => new
                {
                    x.UserID,
                    x.UserName,
                    x.Email,
                    x.LockoutEndDateUtc,
                    x.TotalAppCallConsumed,
                    x.TotalAppCallLimit,
                    x.LastLoginTime,
                    ThemesCountPerUser     = x.CountPerUser,
                    FBPagesCountPerUser    = y.Sum(m => m.CountPerTheme),
                    FBPostsCountPerUser    = y.Sum(m => m.FBPostsCountPerUser),
                    FBCommentsCountPerUser = y.Sum(m => m.FBCommentsCountPerUser)
                });

                // darija entries count for the user
                var arEntriesCountPerUser = new Arabizer().loaddeserializeM_ARABICDARIJAENTRY_CountPerUser_DAPPERSQL();
                var result = result3.Join(arEntriesCountPerUser,
                                          x => x.UserID,
                                          y => y.UserID, (x, y) => new
                {
                    x.UserID,
                    x.UserName,
                    x.Email,
                    x.LockoutEndDateUtc,
                    x.TotalAppCallConsumed,
                    x.TotalAppCallLimit,
                    x.LastLoginTime,
                    x.ThemesCountPerUser,
                    x.FBPagesCountPerUser,
                    ArEntriesCountPerUser = y.CountPerUser,
                    x.FBPostsCountPerUser,
                    x.FBCommentsCountPerUser
                });

                // items count
                intTotalItemCount = result.Count();

                // take the items for the current page only
                result = result
                         .OrderByDescending(x => x.LastLoginTime)
                         .Skip(intSkip)
                         .Take(intPageSize);

                //
                foreach (var item in result)
                {
                    ExpandedUserDTO objUserDTO = new ExpandedUserDTO();
                    objUserDTO.UserName               = item.UserName;
                    objUserDTO.Email                  = item.Email;
                    objUserDTO.LockoutEndDateUtc      = item.LockoutEndDateUtc;
                    objUserDTO.TotalAppCallLimit      = item.TotalAppCallLimit;
                    objUserDTO.TotalAppCallConsumed   = item.TotalAppCallConsumed;
                    objUserDTO.LastLoginTime          = item.LastLoginTime;
                    objUserDTO.ThemesCountPerUser     = item.ThemesCountPerUser;
                    objUserDTO.FBPagesCountPerUser    = item.FBPagesCountPerUser;
                    objUserDTO.ArEntriesCountPerUser  = item.ArEntriesCountPerUser;
                    objUserDTO.FBPostsCountPerUser    = item.FBPostsCountPerUser;
                    objUserDTO.FBCommentsCountPerUser = item.FBCommentsCountPerUser;
                    col_UserDTO.Add(objUserDTO);
                }

                // Created the paged list and Set the number of pages
                var _UserDTOAsIPagedList = new StaticPagedList <ExpandedUserDTO>(col_UserDTO, intPage, intPageSize, intTotalItemCount);

                // themes : deserialize/send list of themes, plus send active theme, plus send list of tags/keywords
                var userId               = User.Identity.GetUserId();
                var userXtrctThemes      = new Arabizer().loaddeserializeM_XTRCTTHEME_DAPPERSQL(userId);
                var userActiveXtrctTheme = userXtrctThemes.Find(m => m.CurrentActive == "active");
                @ViewBag.UserXtrctThemes  = userXtrctThemes;
                @ViewBag.XtrctThemesPlain = userXtrctThemes.Select(m => new SelectListItem {
                    Text = m.ThemeName.Trim(), Selected = m.ThemeName.Trim() == userActiveXtrctTheme.ThemeName.Trim() ? true : false
                });
                @ViewBag.UserActiveXtrctTheme = userActiveXtrctTheme;

                // Fetch the data for fbPages for all themes for that user
                var fbFluencerAsTheme = new Arabizer().loadDeserializeT_FB_INFLUENCERs_DAPPERSQL(userId);
                ViewBag.AllInfluenceVert = fbFluencerAsTheme;

                //
                return(View(_UserDTOAsIPagedList));
            }
            catch (Exception ex)
            {
                ModelState.AddModelError(string.Empty, "Error: " + ex);
                List <ExpandedUserDTO> col_UserDTO = new List <ExpandedUserDTO>();
                return(View(col_UserDTO.ToPagedList(1, 25)));
            }
        }
Ejemplo n.º 8
0
        public ActionResult IndexFBs(string searchStringUserNameOrEmail, string currentFilter, int?page)
        {
            int intPage           = 1;
            int intPageSize       = 5;
            int intTotalItemCount = 0;

            //
            if (searchStringUserNameOrEmail != null)
            {
                intPage = 1;
            }
            else if (currentFilter != null)
            {
                searchStringUserNameOrEmail = currentFilter;
                intPage = page ?? 1;
            }
            else
            {
                searchStringUserNameOrEmail = "";
                intPage = page ?? 1;
            }

            //
            ViewBag.CurrentFilter = searchStringUserNameOrEmail;
            int intSkip = (intPage - 1) * intPageSize;

            //
            var users  = UserManager.Users;
            var lusers = users.ToList();

            // themes for the users
            List <M_XTRCTTHEME> xtrctThemes = new Arabizer().loaddeserializeM_XTRCTTHEME_DAPPERSQL();

            // fb pages for the users
            List <T_FB_INFLUENCER> fbPages = new Arabizer().loadDeserializeT_FB_INFLUENCERs_DAPPERSQL();

            //
            var result0 = lusers.Join(xtrctThemes,
                                      x => x.Id.ToUpper(),
                                      y => y.UserID.ToUpper(), (x, y) => new
            {
                y.ThemeName,
                y.CurrentActive,
                x.UserName,
                idXtrctTheme = y.ID_XTRCTTHEME.ToString()
            });

            var result = result0.Join(fbPages,
                                      x => x.idXtrctTheme,
                                      y => y.fk_theme, (x, y) => new FBPageToThemeToUserViewModel
            {
                name = y.name,          // FB page name
                AutoRetrieveFBPostAndComments = y.AutoRetrieveFBPostAndComments,
                ThemeName     = x.ThemeName,
                CurrentActive = x.CurrentActive,
                UserName      = x.UserName
            });

            result = result.Where(x => x.name.ToUpper().Contains(searchStringUserNameOrEmail.ToUpper()));

            // items count
            intTotalItemCount = result.Count();

            // take the items for the current page only
            result = result
                     .OrderByDescending(x => x.name)
                     .Skip(intSkip)
                     .Take(intPageSize);

            // Created the paged list and Set the number of pages
            var pagedList = new StaticPagedList <FBPageToThemeToUserViewModel>(result, intPage, intPageSize, intTotalItemCount);

            // themes : deserialize/send list of themes, plus send active theme, plus send list of tags/keywords
            var userId               = User.Identity.GetUserId();
            var userXtrctThemes      = new Arabizer().loaddeserializeM_XTRCTTHEME_DAPPERSQL(userId);
            var userActiveXtrctTheme = userXtrctThemes.Find(m => m.CurrentActive == "active");

            @ViewBag.UserXtrctThemes  = userXtrctThemes;
            @ViewBag.XtrctThemesPlain = userXtrctThemes.Select(m => new SelectListItem {
                Text = m.ThemeName.Trim(), Selected = m.ThemeName.Trim() == userActiveXtrctTheme.ThemeName.Trim() ? true : false
            });
            @ViewBag.UserActiveXtrctTheme = userActiveXtrctTheme;

            // Fetch the data for fbPages for all themes for that user
            var fbFluencerAsTheme = new Arabizer().loadDeserializeT_FB_INFLUENCERs_DAPPERSQL(userId);

            ViewBag.AllInfluenceVert = fbFluencerAsTheme;

            //
            return(View(pagedList));
        }
        public ActionResult ManageApp(RegisterApp model)
        {
            var userId = User.Identity.GetUserId();

            //
            var keyExists = _clientKeyToolkit.IsUniqueKeyAlreadyGenerate(userId);

            ViewBag.clientExist = keyExists;
            if (keyExists)
            {
                // Getting Generate ClientID and ClientSecret Key By UserID
                ViewBag.clientkeys = _clientKeyToolkit.GetGenerateUniqueKeyByUserID(userId);
            }

            // themes : deserialize/send list of themes, plus send active theme, plus send list of tags/keywords
            var userXtrctThemes = new Arabizer().loaddeserializeM_XTRCTTHEME_DAPPERSQL(userId);
            List <M_XTRCTTHEME_KEYWORD> xtrctThemesKeywords = new Arabizer().loaddeserializeM_XTRCTTHEME_KEYWORD_Active_DAPPERSQL(userId);
            var userActiveXtrctTheme = userXtrctThemes.Find(m => m.CurrentActive == "active");

            @ViewBag.UserXtrctThemes  = userXtrctThemes;
            @ViewBag.XtrctThemesPlain = userXtrctThemes.Select(m => new SelectListItem {
                Text = m.ThemeName.Trim(), Selected = m.ThemeName.Trim() == userActiveXtrctTheme.ThemeName.Trim() ? true : false
            });
            @ViewBag.UserActiveXtrctTheme      = userActiveXtrctTheme;
            @ViewBag.ActiveXtrctThemeNegTags   = xtrctThemesKeywords.Where(m => m.Keyword_Type == "NEGATIVE" || m.Keyword_Type == "OPPOSE" || m.Keyword_Type == "EXPLETIVE" || m.Keyword_Type == "SENSITIVE").ToList();
            @ViewBag.ActiveXtrctThemePosTags   = xtrctThemesKeywords.Where(m => m.Keyword_Type == "POSITIVE" || m.Keyword_Type == "SUPPORT").ToList();
            @ViewBag.ActiveXtrctThemeOtherTags = xtrctThemesKeywords.Where(m => m.Keyword_Type != "POSITIVE" && m.Keyword_Type != "SUPPORT" && m.Keyword_Type != "NEGATIVE" && m.Keyword_Type != "OPPOSE" && m.Keyword_Type != "EXPLETIVE" && m.Keyword_Type != "SENSITIVE").ToList();

            // Fetch the data for fbPages for all themes for that user
            var fbFluencerAsTheme = new Arabizer().loadDeserializeT_FB_INFLUENCERs_DAPPERSQL(userId);

            ViewBag.AllInfluenceVert = fbFluencerAsTheme;

            // working data entries count
            List <LM_CountPerThemePerUser> entriesCountsperThemePerUser = new Arabizer().loaddeserializeM_ARABICDARIJAENTRY_CountPerThemePerUser_DAPPERSQL(userId);

            @ViewBag.EntriesCountsperThemePerUser = entriesCountsperThemePerUser;

            // fb pages comments count
            List <LM_CountPerInfluencer> commentsCountsPerInfluencer = new Arabizer().loaddeserializeT_FB_Comments_CountPerInfluencer_DAPPERSQL(userId);

            @ViewBag.CommentsCountsPerInfluencer = commentsCountsPerInfluencer;

            // fb pages posts count
            List <LM_CountPerInfluencer> postsCountsPerInfluencer = new Arabizer().loaddeserializeT_FB_Posts_CountPerInfluencer_DAPPERSQL(userId);

            @ViewBag.PostsCountsPerInfluencer = postsCountsPerInfluencer;

            // scocial searc posys count & comment count
            @ViewBag.PostsCounts    = new Arabizer().loaddeserializeT_FB_Posts_Count_DAPPERSQL();
            @ViewBag.CommentsCounts = new Arabizer().loaddeserializeT_FB_Comments_Count_DAPPERSQL();

            // GET access (ie : check app dashbord)
            if (Request.HttpMethod.ToUpper() == "GET")
            {
                return(View());
            }

            // check
            if (!ModelState.IsValid)
            {
                return(View("ManageApp", model));
            }

            // check app already registered
            if (_appRegistrar.ValidateAppName(model))
            {
                ModelState.AddModelError("", "App is Already Registered");
                return(View("ManageApp", model));
            }

            // check app already registered
            var app = _appRegistrar.CheckIsAppRegistered(userId);

            if (app == true)
            {
                return(RedirectToAction("Index"));
            }

            // register app model coming from html form
            ClientKeys clientkeys = new AppManager().CreateApp(model, userId, keyExists, _appRegistrar, _clientKeyToolkit, AppCallLimit);

            // passing them back to the view
            ViewBag.clientkeys  = clientkeys;
            ViewBag.clientExist = true;

            //
            return(View(model));
        }
Ejemplo n.º 10
0
        public async Task <ActionResult> Login(LoginViewModel model, string returnUrl)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            // Require the user to have a confirmed email before they can log on.
            var user = await UserManager.FindByNameAsync(model.Email);

            if (user != null)
            {
                //
                // string callbackUrl = await SendEmailConfirmationTokenAsync(user);
                if (!await UserManager.IsEmailConfirmedAsync(user.Id))
                {
                    ViewBag.errorMessage = "You must have a confirmed email to log on.";
                    return(View("Error"));
                }
            }

            // This doesn't count login failures towards account lockout
            // To enable password failures to trigger account lockout, change to shouldLockout: true
            var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout : false);

            switch (result)
            {
            case SignInStatus.Success:
                goto createDefaultTheme;

            case SignInStatus.LockedOut:
                return(View("Lockout"));

            case SignInStatus.RequiresVerification:
                return(RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe }));

            case SignInStatus.Failure:
            default:
                ModelState.AddModelError("", R.InvalidLoginAttempt);
                return(View(model));
            }

createDefaultTheme:
            // TMP DEV TIME : Create default theme if there is not any one before
            var userIdentity = SignInManager.AuthenticationManager.AuthenticationResponseGrant.Identity;
            String userId   = SignInManager.AuthenticationManager.AuthenticationResponseGrant.Identity.GetUserId();
            var    arabizer = new Arabizer();

            if (arabizer.loaddeserializeM_XTRCTTHEME_DAPPERSQL(userId).Count == 0)
            {
                arabizer.saveserializeM_XTRCTTHEME_EFSQL(new M_XTRCTTHEME
                {
                    ID_XTRCTTHEME = Guid.NewGuid(),
                    CurrentActive = "active",
                    ThemeName     = "Default",
                    UserID        = userId
                });
            }

            // create Default App For Admin (and actually any new user) first time
            if (arabizer.loaddeserializeRegisterApp_DAPPERSQL(userId).Count == 0)
            {
                // create app to use the arabizi
                var appLimit = Convert.ToInt32(ConfigurationManager.AppSettings["TotalAppCallLimit"]);
                var app      = new RegisterApp {
                    Name = userId + ".app"
                };
                new AppManager().CreateApp(app, userId, false, new RegisterAppConcrete(), new ClientKeysConcrete(), appLimit);
            }

            // create registered user
            using (var db = new ArabiziDbContext())
            {
                var userguid       = Guid.Parse(userId);
                var registeredUser = db.RegisterUsers.SingleOrDefault(m => m.UserGuid == userguid);
                if (registeredUser == null)
                {
                    db.RegisterUsers.Add(new RegisterUser
                    {
                        UserGuid      = userguid,
                        LastLoginTime = DateTime.Now,
                        Username      = model.Email,
                        Password      = model.Password,
                        CreateOn      = DateTime.Now,
                        EmailID       = model.Email,
                    });
                }
                else
                {
                    registeredUser.LastLoginTime = DateTime.Now;
                }

                // commit
                db.SaveChanges();
            }

            // log login time
            using (var db = new ArabiziDbContext())
            {
                var userguid       = Guid.Parse(userId);
                var registeredUser = db.RegisterUsers.SingleOrDefault(m => m.UserGuid == userguid);
                if (registeredUser == null)
                {
                    db.RegisterUsers.Add(new RegisterUser
                    {
                        UserGuid      = userguid,
                        LastLoginTime = DateTime.Now,
                        Username      = model.Email,
                        Password      = model.Password,
                        CreateOn      = DateTime.Now,
                        EmailID       = model.Email,
                    });
                }
                else
                {
                    registeredUser.LastLoginTime = DateTime.Now;
                }

                // commit
                db.SaveChanges();
            }

            //
            // return RedirectToAction("Index", "Train");
            // return RedirectToAction("IndexTranslateArabizi", "Train");
            return(RedirectToAction("IndexSplash", "Train"));
        }