示例#1
0
 public NovellOrganizationContactPerson(OrganizationContactPersonView person)
 {
     if (person.FirstName != null && person.LastName != null)
     {
         FirstName = TransliterateName(person.FirstName);
         Surname   = TransliterateName(person.LastName);
         Email     = person.Email;
         Login     = ConstructLogin(TransliterateName(person.FirstName), TransliterateName(person.LastName));
         Password  = RandomPasswordGenerator.GeneratePassword(8);
     }
     else
     {
         return;
     }
 }
示例#2
0
        public async Task <IHttpActionResult> SimpleRegisterOrganizationContactPerson(int organizationContactPersonId)
        {
            if (organizationContactPersonId != 0)
            {
                OrganizationContactPersonView person = null;

                UnitOfWork unitOfWork = new UnitOfWork(factory);
                person = unitOfWork.OrganizationContactPersonsViewRepository.Get(d => d.Id == organizationContactPersonId)
                         .FirstOrDefault();

                if (person == null || person.Deleted == true)
                {
                    return(BadRequest("Organization contact person doesn't exist"));
                }
                if (person.IsRegistered == true)
                {
                    return(BadRequest("Organization contact person is already registered as an API  user"));
                }
                if (person.Email == null || person.Email == "")
                {
                    return(BadRequest("Organization contact person email is empty"));
                }
                INovellOrganizationContactPerson novellPerson;
                try
                {
                    novellPerson = new NovellOrganizationContactPerson(person);
                    // novellPerson.Login = novell.GenerateLogin(novellPerson.Login);
                }
                catch (Exception e)
                {
                    return(BadRequest(e.Message));
                }

                INovellOrganizationContactPerson personCreated = novell.CreateOrganization(novellPerson);
                if (personCreated != null)
                {
                    bool dbResult = context.CreateOrganization(novellPerson.Login, novellPerson.Password);
                    if (dbResult)
                    {
                        ApplicationUser user = new ApplicationUser()
                        {
                            UserName = novellPerson.Login,
                            Email    = novellPerson.Email,
                            //TableName = "OrganizationContactPerson",
                            //TableId = organizationContactPersonId
                        };
                        try
                        {
                            IdentityResult result = await UserManager.CreateAsync(user, novellPerson.Password);

                            if (!result.Succeeded)
                            {
                                return(GetErrorResult(result));
                            }
                            else
                            {
                                IdentityResult roleResult = await UserManager.AddToRoleAsync(user.Id, "Organization");

                                if (!roleResult.Succeeded)
                                {
                                    return(GetErrorResult(roleResult));
                                }

                                bool rightsResult = context.GrantRightsToOrganization(user.Id);
                                if (rightsResult)
                                {
                                    await SendEmailWithCredentials(novellPerson, user.Id);

                                    return(Ok());
                                }
                            }
                        }
                        catch (Exception e)
                        {
                            string m = e.Message;
                            return(BadRequest("AspNetUser has not been created"));
                        }
                    }
                    else
                    {
                        return(BadRequest("Database login has not been created"));
                    }
                }
                else
                {
                    return(BadRequest("eDirectory login has not been created"));
                }
            }
            return(BadRequest("Wrong organization contact person"));
        }
示例#3
0
        public async Task SimpleRegisted_ShouldRegisterAndReturnOK()
        {
            //это было самым трудным

            int organizationContactPersonId = 33;

            var identityHelper = new Mock <IIdentityHelper>();

            identityHelper.Setup(d => d.FindUserById(It.IsAny <string>()))
            .Returns <string>((userId) =>
            {
                ApplicationUser user = new ApplicationUser
                {
                    Id    = userId,
                    Email = "*****@*****.**",
                    //TableId = 1,
                    //TableName = "Employee",
                    UserName = "******"
                };
                return(user);
            });
            identityHelper.Setup(d => d.GetUserId(It.IsAny <IPrincipal>())).Returns(Guid.NewGuid().ToString());

            var dbContext = new Mock <IAppDbContext>();

            dbContext.Setup(d => d.ExecuteStoredProcedure <bool>(It.IsAny <string>(), It.IsAny <object[]>()))
            .Returns <string, object[]>((query, parameters) =>
            {
                List <bool> list = new List <bool>();
                if (query.Contains("IsEmployeeInformationFilled"))
                {
                    list.Add(true);
                }
                return(list);
            });

            var personsData = new List <OrganizationContactPersonView>
            {
                new OrganizationContactPersonView {
                    Id = 33, FirstName = "Тест", SecondName = "Тестович", LastName = "Тестовый", Email = "*****@*****.**"
                },
                new OrganizationContactPersonView {
                    Id = 99, Email = "ddd", FirstName = "ss", SecondName = "ss", LastName = "ssss"
                }
            };
            var persons = MockHelper.MockDbSet <OrganizationContactPersonView>(personsData);

            dbContext.Setup(d => d.OrganizationContactPersonViews).Returns(persons.Object);
            dbContext.Setup(d => d.Set <OrganizationContactPersonView>()).Returns(persons.Object);

            var dbFactory = new Mock <IDbContextFactory>();

            dbFactory.Setup(d => d.CreateDbContext()).Returns(dbContext.Object);

            var request = new Mock <IRequest>();

            request.Setup(d => d.FileCount()).Returns(1);
            request.Setup(d => d.Collection()).Returns(new List <string> {
                "one.jpg"
            });
            request.Setup(d => d.AppPath()).Returns("C://Projects//GTIWebAPI//GTIWebAPI//");

            var novell = new Mock <INovelleDirectory>();
            //  novell.Setup(d => d.GenerateLogin(It.IsAny<string>())).Returns<string>((login) => { return login; });
            OrganizationContactPersonView contactPerson = new OrganizationContactPersonView()
            {
                FirstName = "Sofia",
                LastName  = "Viazovsky",
                Email     = "*****@*****.**"
            };

            novell.Setup(d => d.CreateOrganization(It.IsAny <INovellOrganizationContactPerson>())).Returns(new NovellOrganizationContactPerson(contactPerson));

            var context = new Mock <IApplicationDbContext>();

            context.Setup(d => d.CreateOrganization(It.IsAny <string>(), It.IsAny <string>())).Returns(true);
            context.Setup(d => d.GrantRightsToOrganization(It.IsAny <string>())).Returns(true);

            var mockUS = new Mock <IUserStore <ApplicationUser> >();

            var mockUM = new Mock <ApplicationUserManager>(mockUS.Object);

            mockUM.Setup(d => d.AddToRoleAsync(It.IsAny <string>(), It.IsAny <string>())).Returns <string, string>
                ((a, b) =>
            {
                return(Task.FromResult <IdentityResult>(IdentityResult.Success));
            });
            mockUM.Setup(d => d.CreateAsync(It.IsAny <ApplicationUser>())).Returns <ApplicationUser>
                ((user) =>
            {
                return(Task.FromResult <IdentityResult>(IdentityResult.Success));
            });
            mockUM.Setup(d => d.CreateAsync(It.IsAny <ApplicationUser>(), It.IsAny <string>())).Returns <ApplicationUser, string>
                ((user, password) =>
            {
                return(Task.FromResult <IdentityResult>(IdentityResult.Success));
            });
            mockUM.Setup(d => d.SendEmailAsync(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>())).Returns(Task.FromResult(default(object)));

            var controller = new AccountController(dbFactory.Object, context.Object, request.Object, identityHelper.Object, novell.Object, mockUM.Object);
            var result     = await controller.SimpleRegisterOrganizationContactPerson(33) as OkResult;

            Assert.IsNotNull(result);
        }