public List <M_ARABICDARIJAENTRY_TEXTENTITY> NerManualExtraction_uow(String arabicText, IEnumerable <TextEntity> entities, Guid arabicDarijaEntry_ID_ARABICDARIJAENTRY,
                                                                             Action <M_ARABICDARIJAENTRY_TEXTENTITY, ArabiziDbContext, bool> saveserializeM_ARABICDARIJAENTRY_TEXTENTITY_EFSQL_uow,
                                                                             ArabiziDbContext db,
                                                                             bool isEndOfScope
                                                                             )
        {
            List <M_ARABICDARIJAENTRY_TEXTENTITY> textEntities = new List <M_ARABICDARIJAENTRY_TEXTENTITY>();

            // clean post-rosette
            var lentities = NerRosetteClean(entities);

            // NER manual extraction
            new TextFrequency().GetManualEntities(arabicText, lentities);

            // clean 3 post rosette & manual ners : drop self containing
            foreach (var entity in lentities)
            {
                var entitiesToDrop = entities.ToList().FindAll(m => m.Mention != entity.Mention && m.Mention.Contains(entity.Mention));
                foreach (var entityToDrop in entitiesToDrop)
                {
                    entityToDrop.Type = "TODROP";
                }
            }
            lentities.RemoveAll(m => m.Type == "TODROP");

            // Saving
            foreach (var entity in lentities)
            {
                var textEntity = new M_ARABICDARIJAENTRY_TEXTENTITY
                {
                    ID_ARABICDARIJAENTRY_TEXTENTITY = Guid.NewGuid(),
                    ID_ARABICDARIJAENTRY            = arabicDarijaEntry_ID_ARABICDARIJAENTRY,
                    TextEntity = entity
                };

                //
                textEntities.Add(textEntity);

                // Save to Serialization
                saveserializeM_ARABICDARIJAENTRY_TEXTENTITY_EFSQL_uow(textEntity, db, isEndOfScope);
            }

            //
            return(textEntities);
        }
示例#2
0
        public ActionResult Create(ExpandedUserDTO paramExpandedUserDTO)
        {
            try
            {
                if (paramExpandedUserDTO == null)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }

                var Email    = paramExpandedUserDTO.Email.Trim();
                var UserName = paramExpandedUserDTO.Email.Trim();
                var Password = paramExpandedUserDTO.Password.Trim();

                if (Email == "")
                {
                    throw new Exception("No Email");
                }

                if (Password == "")
                {
                    throw new Exception("No Password");
                }

                // UserName is LowerCase of the Email
                UserName = Email.ToLower();

                // Create user
                var objNewAdminUser = new ApplicationUser {
                    UserName = UserName, Email = Email
                };
                var AdminUserCreateResult = UserManager.Create(objNewAdminUser, Password);

                if (AdminUserCreateResult.Succeeded == true)
                {
                    string strNewRole = Convert.ToString(Request.Form["Roles"]);

                    // Put user in role
                    if (strNewRole != "0")
                    {
                        UserManager.AddToRole(objNewAdminUser.Id, strNewRole);
                    }

                    // create app to use the arabizi
                    var userId   = objNewAdminUser.Id;
                    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      = Email,
                                Password      = Password,
                                CreateOn      = DateTime.Now,
                                EmailID       = Email,
                            });
                        }
                        else
                        {
                            registeredUser.LastLoginTime = DateTime.Now;
                        }

                        // commit
                        db.SaveChanges();
                    }

                    return(Redirect("~/Admin"));
                }
                else
                {
                    ViewBag.Roles = GetAllRolesAsSelectList();
                    ModelState.AddModelError(string.Empty, "Error: Failed to create the user. Check password requirements.");
                    return(View(paramExpandedUserDTO));
                }
            }
            catch (Exception ex)
            {
                ViewBag.Roles = GetAllRolesAsSelectList();
                ModelState.AddModelError(string.Empty, "Error: " + ex);
                return(View("Create"));
            }
        }
 public RegisterAppConcrete()
 {
     _context = new ArabiziDbContext();
 }
示例#4
0
 public AuthenticateConcrete()
 {
     _context = new ArabiziDbContext();
 }
 public ClientKeysConcrete()
 {
     _context = new ArabiziDbContext();
 }
示例#6
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"));
        }