コード例 #1
0
        private void InitSearchControls()
        {
            DateTime date = DateTime.Now.AddMonths(-1);
            //txtStartDate.Text = new DateTime(date.Year, date.Month, 1).ToString("MM/dd/yyyy");
            //txtEndDate.Text = new DateTime(date.Year, date.Month, DateTime.DaysInMonth(date.Year, date.Month)).ToString("MM/dd/yyyy");

            ProjectApplication      projApp = new ProjectApplication();
            List <ProjectDetailDTO> listAll = projApp.GetUserProjects(UserInfo);

            listAll.BindDropdown <ProjectDetailDTO>(ddlProject, "Title", "ID", "All", "0");

            UserApplication    userApp     = new UserApplication();
            SearchUsersRequest requestUser = new SearchUsersRequest(
                SearchUsersType.All, false, " FirstName ", " ASC ");

            requestUser.IsSunnet = true;
            SearchUserResponse responseuser = userApp.SearchUsers(requestUser);

            ddlUsers.Items.Add(new ListItem("All", "0"));
            foreach (UsersEntity user in responseuser.ResultList)
            {
                ddlUsers.Items.Add(new ListItem(string.Format("{0} {1}", user.FirstName, user.LastName)
                                                , user.ID.ToString()));
            }
        }
コード例 #2
0
        private void BindUsers()
        {
            UserApplication    userApp     = new UserApplication();
            SearchUsersRequest requestUser = new SearchUsersRequest(
                SearchUsersType.All, false, " FirstName ", " ASC ");

            requestUser.IsSunnet = true;
            requestUser.IsActive = true;
            SearchUserResponse responseuser = userApp.SearchUsers(requestUser);

            ddlUsers.Items.Add(new ListItem("All", "0"));
            switch (UserInfo.Role)
            {
            case RolesEnum.ADMIN:
            case RolesEnum.Sales:
            case RolesEnum.PM:
                foreach (UsersEntity user in responseuser.ResultList)
                {
                    ddlUsers.Items.Add(new ListItem(string.Format("{0} {1}", user.FirstName, user.LastName)
                                                    , user.ID.ToString()));
                }
                break;

            case RolesEnum.Leader:
            case RolesEnum.QA:
            case RolesEnum.DEV:
                foreach (UsersEntity user in responseuser.ResultList.FindAll(r => r.Role == RolesEnum.Leader ||
                                                                             r.Role == RolesEnum.QA || r.Role == RolesEnum.DEV))
                {
                    ddlUsers.Items.Add(new ListItem(string.Format("{0} {1}", user.FirstName, user.LastName)
                                                    , user.ID.ToString()));
                }
                break;
            }
        }
コード例 #3
0
        public async Task <IActionResult> RegistrarNovoUsuario(RegistrarUsuarioViewModel model, string returnUrl)
        {
            ViewData["ReturnUrl"] = returnUrl;
            if (ModelState.IsValid)
            {
                var user = new UserApplication {
                    UserName = model.Email, Email = model.Email
                };

                var result = await _userManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    _logger.LogInformation("Usuário criou uma nova conta com senha");
                    var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);

                    await _signInManager.SignInAsync(user, isPersistent : false);

                    _logger.LogInformation("Usuário com acesso com a conta criada");

                    return(RedirectToLocal(returnUrl));
                }
                AddErros(result);
            }

            return(View(model));
        }
コード例 #4
0
        public bool SendWeekPlanMail(string office)
        {
            WeekPlanApplication weekPlanApplication        = new WeekPlanApplication();
            UserApplication     userApp                    = new UserApplication();
            List <UsersEntity>  usersHavenotSubmitWeekPlan = new List <UsersEntity>();
            List <UsersEntity>  allUsers                   = userApp.GetActiveUserList().FindAll(u => u.Role != RolesEnum.CLIENT && u.IsNotice);
            List <UsersEntity>  currentUsers               = allUsers.FindAll(u => u.Office.ToUpper() == office.ToUpper());
            DateTime            weekDay                    = DateTime.Now;

            if (weekDay.DayOfWeek != DayOfWeek.Sunday)
            {
                weekDay = weekDay.AddDays(-(int)DateTime.Now.DayOfWeek).AddDays(7);
            }

            foreach (UsersEntity user in currentUsers)
            {
                WeekPlanEntity weekPlanEntity = weekPlanApplication.GetInfo(user.UserID, weekDay);
                if (weekPlanEntity == null)
                {
                    usersHavenotSubmitWeekPlan.Add(user);
                }
            }

            SendWeekPlanMail(usersHavenotSubmitWeekPlan, weekDay.Date);
            return(true);
        }
コード例 #5
0
        public void Convert()
        {
            var user = new User()
            {
                Identifier = Guid.NewGuid(),
            };

            var application = new Application()
            {
                Identifier = Guid.NewGuid(),
            };

            var ua = new UserApplication()
            {
                User        = user,
                Active      = true,
                Application = application,
                Deleted     = true,
            };

            var converted = ua.Convert();

            Assert.AreEqual <bool>(ua.Active, converted.Active);
            Assert.AreEqual <bool>(ua.Deleted, converted.Deleted);
            Assert.AreEqual <Guid>(ua.User.Identifier, converted.UserId);
            Assert.AreEqual <Guid>(ua.Application.Identifier, converted.ApplicationId);
        }
コード例 #6
0
        public static bool CreateNewUserApp(UserApplication newUser, HtmlInputFile imageUploader)
        {
            string applicationName = newUser.AppName;
            string username        = newUser.UserName;
            string password        = newUser.Password;

            string[] userRoles        = newUser.UserRoles.ToArray();
            bool     isNewUserCreated = false;

            Membership.ApplicationName = applicationName;
            Roles.ApplicationName      = applicationName;

            Membership.CreateUser(username, password);

            if (Membership.ValidateUser(username, password))
            {
                Roles.AddUserToRoles(username, userRoles);

                string profileImageVersion = UploadCloudinaryProfileImage(imageUploader, applicationName, username);

                Membership.ApplicationName = applicationName;
                MembershipUser currentUser = Membership.GetUser(username);
                currentUser.Comment = profileImageVersion;
                Membership.UpdateUser(currentUser);
                Membership.ApplicationName = "ShopHelperAsp";

                isNewUserCreated = true;
            }
            Membership.ApplicationName = "ShopHelperAsp";
            Roles.ApplicationName      = "ShopHelperAsp";

            return(isNewUserCreated);
        }
コード例 #7
0
        // PUT api/UserApplications/5
        public HttpResponseMessage PutUserApplication(int id, UserApplication userapplication)
        {
            if (!ModelState.IsValid)
            {
                return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
            }

            if (id != userapplication.Id)
            {
                return Request.CreateResponse(HttpStatusCode.BadRequest);
            }

            db.Entry(userapplication).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException ex)
            {
                return Request.CreateErrorResponse(HttpStatusCode.NotFound, ex);
            }

            return Request.CreateResponse(HttpStatusCode.OK);
        }
コード例 #8
0
        protected void btnLogin_Click(object sender, EventArgs e)
        {
            string msg = CheckInput();

            if (string.IsNullOrEmpty(msg))
            {
                UsersEntity user = GetEntity();
                user.PassWord      = txtNewPsd.Text;
                user.AccountStatus = UsersEntity.ResetPasswordFlag;
                UserApplication userApp = new UserApplication();
                if (userApp.UpdateUser(user))
                {
                    LoginSystem(user, txtNewPsd.Text, true);
                    Response.Redirect("/Default.aspx");
                }
                else
                {
                    ShowMessage(userApp.BrokenRuleMessages[0].Message, false);
                }
            }
            else
            {
                ShowMessage(msg, false);
            }
        }
コード例 #9
0
        public void SaveUserApplicationInvalidEditor()
        {
            var core = new ApplicationCore();
            var user = new User()
            {
                Identifier = Guid.NewGuid(),
            };
            var u = new User()
            {
                Identifier = Guid.NewGuid(),
            };
            var app = new Application()
            {
                Identifier = Guid.NewGuid(),
            };
            var editor = new UserApplication()
            {
                User        = u,
                Application = app,
            };
            var application = new Abc.Services.Contracts.Application()
            {
                Identifier = Guid.NewGuid(),
            };

            var ua = new UserApplication()
            {
                Application = application,
                User        = user,
            };

            core.Save(ua, editor);
        }
コード例 #10
0
        public async Task <IActionResult> Register(UserRegisterViewModel userRegister)
        {
            if (ModelState.IsValid)
            {
                UserApplication user = new UserApplication()
                {
                    UserName    = userRegister.UserName,
                    Email       = userRegister.Email,
                    PhoneNumber = userRegister.Phone,
                    FirstName   = userRegister.FirstName,
                    LastName    = userRegister.LastName,
                    BirthDate   = userRegister.BirthDate
                };

                IdentityResult result = await _userManager.CreateAsync(user, userRegister.Password);

                if (result.Succeeded)
                {
                    return(RedirectToAction("Index", "Home"));
                }
                foreach (var item in result.Errors)
                {
                    ModelState.AddModelError(item.Code, item.Description);
                }
            }
            return(View(userRegister));
        }
コード例 #11
0
        private async Task <string> GenerateJWToken(UserApplication user)
        {
            var claims = new List <Claim>
            {
                new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()),
                new Claim(ClaimTypes.Name, user.UserName)
            };

            var roles = await _userManager.GetRolesAsync(user);

            foreach (var role in roles)
            {
                claims.Add(new Claim(ClaimTypes.Role, role));
            }
            var key = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(_config.GetSection("AppSettings:Token").Value));

            var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha512Signature);

            var tokenDescriptor = new SecurityTokenDescriptor
            {
                Subject            = new ClaimsIdentity(claims),
                Expires            = DateTime.Now.AddDays(1),
                SigningCredentials = creds
            };

            var tokenHandler = new JwtSecurityTokenHandler();

            var token = tokenHandler.CreateToken(tokenDescriptor);

            return(tokenHandler.WriteToken(token));
        }
コード例 #12
0
        public void SaveApplicationInformationEmptyInfoAppId()
        {
            var core = new ApplicationCore();
            var u    = new User()
            {
                Identifier = Guid.NewGuid(),
            };
            var app = new Application()
            {
                Identifier = Guid.NewGuid(),
            };
            var editor = new UserApplication()
            {
                User        = u,
                Application = app,
            };
            var userApp = new ApplicationInformation()
            {
                Identifier = Guid.NewGuid(),
            };
            var info = this.Information();

            info.Identifier = Guid.Empty;
            core.Save(info, editor, userApp);
        }
コード例 #13
0
        public bool UserIsAssociated(UserApplication editor, Abc.Services.Contracts.Application application)
        {
            Contract.Requires <ArgumentNullException>(null != editor);
            Contract.Requires <ArgumentNullException>(null != application);
            Contract.Requires <ArgumentNullException>(null != editor.User);
            Contract.Requires <ArgumentNullException>(null != editor.Application);
            Contract.Requires <ArgumentOutOfRangeException>(Guid.Empty != editor.User.Identifier);
            Contract.Requires <ArgumentOutOfRangeException>(Guid.Empty != editor.Application.Identifier);
            Contract.Requires <ArgumentOutOfRangeException>(Guid.Empty != application.Identifier);

            using (new PerformanceMonitor())
            {
                var source = new DomainSource();
                var user   = source.GetUserById(editor.Application.Identifier, editor.User.Identifier);
                if (null != user)
                {
                    if (user.RoleValue == (int)RoleType.Manager)
                    {
                        return(true);
                    }
                }

                var table = new AzureTable <ApplicationInfoData>(ServerConfiguration.Default);
                var data  = table.QueryBy(string.Empty, application.Identifier.ToString());
                if (null != data)
                {
                    if (data.Owner == editor.User.Identifier)
                    {
                        return(true);
                    }
                }

                return(this.Get(editor) != null);
            }
        }
コード例 #14
0
        public ActionResult Authenticate(UserSys userModel)
        {
            string connectionString = ConfigurationManager.ConnectionStrings["connectionStr"].ToString();

            IUserSysRepository userRepository = new UserSysRepository(connectionString);
            var userApp = new UserApplication(userRepository);

            var userLogged = userApp.TryLogin(userModel.Email, userModel.Password);

            if (userLogged != null)
            {
                Session["userLogin"]   = userLogged.Login;
                Session["userEmail"]   = userLogged.Email;
                Session["userIsAdmin"] = userLogged.UserRole.IsAdmin;
                Session["userId"]      = userLogged.Id;

                FormsAuthentication.SetAuthCookie(userLogged.Email, false);

                return(RedirectToAction("Index", "Customer"));
            }
            else
            {
                userModel.LoginErrorMessage = "“The e-mail and/or password entered is invalid. Please try again.";
                return(View("Index", userModel));
            }
        }
コード例 #15
0
        public IApplication ToUserApplication(MatchUsing MatchUsing)
        {
            UserApplication userApplication = new UserApplication();

            userApplication.Name       = ApplicationName;
            userApplication.MatchUsing = MatchUsing;

            switch (MatchUsing)
            {
            case MatchUsing.WindowClass:
                userApplication.MatchString = WindowClass;
                break;

            case MatchUsing.WindowTitle:
                userApplication.MatchString = WindowTitle;
                break;

            case MatchUsing.ExecutableFilename:
                userApplication.MatchString = WindowFilename;
                break;
            }

            userApplication.IsRegEx = false;

            return(userApplication);
        }
コード例 #16
0
        public async Task <UserApplication[]> GetForUserAsync(int accountId)
        {
            if (accountId <= 0)
            {
                throw new ArgumentOutOfRangeException(nameof(accountId));
            }
            using (var cmd = (DbCommand)_uow.CreateCommand())
            {
                cmd.CommandText = @"SELECT a.Id ApplicationId, a.Name ApplicationName, ApplicationMembers.Roles, a.NumberOfFtes NumberOfDevelopers
                                        FROM Applications a
                                        JOIN ApplicationMembers ON (ApplicationMembers.ApplicationId = a.Id) 
                                        WHERE ApplicationMembers.AccountId = @userId
                                        ORDER BY Name";
                cmd.AddParameter("userId", accountId);
                using (var reader = await cmd.ExecuteReaderAsync())
                {
                    var apps = new List <UserApplication>();
                    while (await reader.ReadAsync())
                    {
                        var numberOfDevelopers = reader.GetValue(3);
                        var a = new UserApplication
                        {
                            IsAdmin            = reader.GetString(2).Contains("Admin"),
                            ApplicationName    = reader.GetString(1),
                            ApplicationId      = reader.GetInt32(0),
                            NumberOfDevelopers = numberOfDevelopers is DBNull ? null : (decimal?)numberOfDevelopers
                        };
                        apps.Add(a);
                    }

                    return(apps.ToArray());
                }
            }
        }
コード例 #17
0
        public void ApplicationInfoRoundTrip()
        {
            var table = new AzureTable <UserData>(CloudStorageAccount.DevelopmentStorageAccount);
            var user  = new UserData(string.Format("{0}@temp.com", Guid.NewGuid()), "na", Guid.NewGuid().ToString());

            table.AddEntity(user);

            var core = new ApplicationCore();
            var data = this.Information();

            data.Identifier = Abc.Underpinning.Application.Identifier;
            var u = new User()
            {
                Identifier = user.Id,
            };
            var app = new Application()
            {
                Identifier = Guid.NewGuid(),
            };
            var editor = new UserApplication()
            {
                User        = u,
                Application = app,
            };
            var userApp = new ApplicationInformation()
            {
                Identifier = Application.Default.Identifier,
            };
            var saved = core.Save(data, editor, userApp);

            Assert.IsNotNull(saved);
            Assert.AreEqual <string>(data.Description, saved.Description);
            Assert.AreEqual <string>(data.Name, saved.Name);
            Assert.AreEqual <Guid>(data.Identifier, saved.Identifier);
        }
コード例 #18
0
ファイル: TimeSheet.aspx.cs プロジェクト: KhaledSMQ/SunNet.PM
        protected void iBtnDownload_Click(object sender, ImageClickEventArgs e)
        {
            SearchTimeSheetsRequest request = new SearchTimeSheetsRequest(SearchType.QueryReport,
                                                                          false, hidOrderBy.Value, hidOrderDirection.Value);

            request.Keywords    = txtKeyword.Text;
            request.CurrentPage = anpTimesheet.CurrentPageIndex;
            request.PageCount   = anpTimesheet.PageSize;
            request.ProjectID   = int.Parse(ddlProject.SelectedValue);
            request.TicketID    = int.Parse(ddlTickets.SelectedValue);
            request.UserID      = int.Parse(ddlUsers.SelectedValue);

            request.StartDate = StartDate;
            request.EndDate   = EndDate;

            if (ddlProject.SelectedIndex != 0)
            {
                request.OrderExpression = "ticketcode, sheetdate";
                request.OrderDirection  = "asc";
            }
            SearchTimeSheetsResponse response = tsApp.QueryTimesheet(request);
            UserApplication          userApp  = new UserApplication();

            UsersEntity model  = userApp.GetUser(int.Parse(ddlUsers.SelectedValue));
            ExcelReport report = new ExcelReport();

            report.Generate(response.TimeSheetsList, model, ddlProject.SelectedItem.Text, DateTime.Now);
        }
コード例 #19
0
        public void SaveConfigurationNullsUserAndToken()
        {
            var user      = new UserData(StringHelper.ValidString(), StringHelper.ValidString(), StringHelper.ValidString());
            var userTable = new AzureTable <UserData>(CloudStorageAccount.DevelopmentStorageAccount);

            userTable.AddEntity(user);
            var userApp = new UserApplicationData(user.Id, user.ApplicationId)
            {
                Active = true
            };
            var table = new AzureTable <UserApplicationData>(CloudStorageAccount.DevelopmentStorageAccount);

            table.AddEntity(userApp);

            var core   = new ApplicationCore();
            var config = this.Config(userApp.ApplicationId);

            var u = new User()
            {
                Identifier = userApp.UserId,
            };
            var a = new Application()
            {
                Identifier = user.ApplicationId,
            };
            var editor = new UserApplication()
            {
                User        = u,
                Application = a,
            };
            var returned = core.Save(config, editor);

            Assert.IsNotNull(returned);
            Assert.IsNull(returned.Token);
        }
コード例 #20
0
        private async Task AttachUserToContext(HttpContext context, string accessCode,
                                               IAccessTokenService accessTokenService, IUserApplicationService userApplicationService)
        {
            AccessToken accessToken = await accessTokenService.FindByCodeAsync(accessCode);

            if (accessToken.Revoked || DateTime.Now > accessToken.ExpiresAt)
            {
                return;
            }

            context.Items["User"]        = accessToken.User;
            context.Items["Application"] = accessToken.Application;

            if (accessToken.Application != null)
            {
                List <Scope>    scopes          = new List <Scope>();
                UserApplication userApplication =
                    await userApplicationService.FindByUserAndApplicationAsync(accessToken.User,
                                                                               accessToken.Application);

                if (userApplication == null)
                {
                    return;
                }

                foreach (UserApplicationScope scope in userApplication.Scopes)
                {
                    scopes.Add(scope.Scope);
                }

                context.Items["Scopes"] = scopes;
            }
        }
コード例 #21
0
        /// <summary>
        /// Gets the application for user. If the application doesn't
        /// exist then one is created.
        /// </summary>
        /// <param name="username">The username of the user.</param>
        /// <returns>
        /// A user application.
        /// </returns>
        public Status <UserApplication> GetApplicationForUser(string username)
        {
            using (var context = new RentlerContext())
            {
                // get the user
                User result = (from u in context.Users.Include("UserApplication")
                               where u.Username == username
                               select u).SingleOrDefault();

                if (result == null)
                {
                    return(Status.NotFound <UserApplication>());
                }

                UserApplication application;

                if (result.UserApplication == null)
                {
                    application        = new UserApplication();
                    application.UserId = result.UserId;
                    context.UserApplications.Add(application);
                    context.SaveChanges();
                }
                else
                {
                    application = result.UserApplication;
                }

                return(Status.OK <UserApplication>(application));
            }
        }
コード例 #22
0
        public async Task <AccessToken> CreateAsync(User user, Application application)
        {
            UserApplication assignment = new UserApplication
            {
                Application   = application,
                ApplicationId = application.Id,
                User          = user,
                UserId        = user.Id
            };

            AccessToken accessToken = await FindByUserApplication(assignment);

            if (accessToken != null)
            {
                accessToken.LastUsed = DateTime.Now;
                _context.Update(accessToken);
                await _context.SaveChangesAsync();

                return(accessToken);
            }

            accessToken = new AccessToken
            {
                ApplicationId = application.Id,
                Code          = GenerateCode(),
                UserId        = user.Id,
                ExpiresAt     = DateTime.Now.AddDays(7),
            };

            await _context.AddAsync(accessToken);

            await _context.SaveChangesAsync();

            return(accessToken);
        }
コード例 #23
0
        public HttpResponseMessage Put(Guid id, UserDTO userDTO)
        {
            var post = UserApplication.Get(id);

            if (post == null)
            {
                return(Request.CreateResponse(HttpStatusCode.NotFound, new Note("Usuário não encontrado", Note.NoteType.Success)));
            }

            var converter = new UserConverter();

            converter.Convert(userDTO, post);

            try
            {
                UserApplication.Save(post);
                return(Request.CreateResponse(HttpStatusCode.OK, new Note("Usuário criado com sucesso", Note.NoteType.Success)));
            }
            catch (InvalidModelState ex)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, new Note("Não foi possível criar o post", ex.Details, Note.NoteType.Warning)));
            }
            catch (Exception ex)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, new Note("Não foi possível criar o usuário", ex.Message, Note.NoteType.Error)));
            }
        }
コード例 #24
0
        /// <summary>
        /// Public Profiles Full
        /// </summary>
        /// <param name="application">Application</param>
        /// <returns>Full Public Profiles</returns>
        public IEnumerable <UserPublicProfile> PublicProfilesFull(Application application, bool withPreferences = true)
        {
            Contract.Requires <ArgumentNullException>(null != application);
            Contract.Requires <ArgumentException>(Guid.Empty != application.Identifier);

            using (new PerformanceMonitor())
            {
                IList <UserPublicProfile> publicProfiles = null;
                var profiles = this.PublicProfiles(application);
                if (null != profiles)
                {
                    publicProfiles = new List <UserPublicProfile>(profiles.Count());
                    foreach (var profile in profiles)
                    {
                        var user = new User()
                        {
                            Identifier = profile.OwnerIdentifier,
                        };

                        var userApp = new UserApplication()
                        {
                            Application = application,
                            User        = user,
                        };

                        user = this.GetByIdentifier(userApp);
                        if (null != user)
                        {
                            var publicProfile = user.Convert();
                            publicProfile.Handle          = profile.Handle;
                            publicProfile.PreferedProfile = profile.PreferedProfile;
                            publicProfile.Points          = profile.Points;
                            publicProfile.Word            = profile.Word;
                            publicProfile.OwnerIdentifier = profile.OwnerIdentifier;

                            var preference = new UserPreference()
                            {
                                Application = application,
                                User        = user,
                            };

                            if (withPreferences)
                            {
                                preference = this.Get(preference);

                                if (null != preference)
                                {
                                    publicProfile.TwitterHandle = preference.TwitterHandle;
                                    publicProfile.GitHubHandle  = preference.GitHubHandle;
                                }
                            }

                            publicProfiles.Add(publicProfile);
                        }
                    }
                }

                return(publicProfiles);
            }
        }
コード例 #25
0
        public UserTest()
        {
            var faker = new Faker();
            userViewModel = new UserViewModel()
            {
                Email = "*****@*****.**",
                Hash = HashMD5.getMD5("1"),
                Name = "faker user",
                Password = "******",
                Role = 1
            };

            loginViewModel = new LoginViewModel()
            {
                Login = "******",
                Password = "******"
            };

            //auto mapper configuration
            var profiles = new List<Profile>() { new EntityToViewModelMapping(), new ViewModelToEntityMapping() };

            var mockMapper = new MapperConfiguration(cfg =>
            {
                cfg.AddProfiles(profiles);

            });
            _mapper = mockMapper.CreateMapper();

            _user = new Mock<IUser>();
            _userApplication = new UserApplication(_user.Object, _mapper);
        }
コード例 #26
0
        protected UsersEntity GetEntity()
        {
            IEncrypt encrypt = UtilFactory.GetEncryptProvider(EncryptType.DES);

            string[] items = encrypt.Decrypt(Request.Params["link"]).Split("_".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
            if (items.Length != 2)
            {
                return(null);
            }
            int      userid;
            DateTime date;

            if (!int.TryParse(items[0], out userid) || !DateTime.TryParse(items[1], out date))
            {
                return(null);
            }
            if (date.Date != DateTime.Now.Date)
            {
                return(null);
            }
            UserApplication userApp = new UserApplication();
            UsersEntity     user    = userApp.GetUser(userid, false);

            return(user);
        }
コード例 #27
0
ファイル: AccountController.cs プロジェクト: Malgier/FYP
 public AccountController()
 {
     userApp    = new UserApplication();
     context    = new SessionContext();
     sprocs     = new StoredProcedureCalls();
     encryption = new PasswordEncryption();
 }
コード例 #28
0
        public bool SendDailyMail(DateTime date, string office)
        {
            UserApplication userApp = new UserApplication();
            // sunneters
            List <UsersEntity> allUsers         = userApp.GetActiveUserList().FindAll(u => u.Role != RolesEnum.CLIENT && u.IsNotice);
            List <UsersEntity> currentUsers     = allUsers.FindAll(u => u.Office.ToUpper() == office.ToUpper());
            List <UsersEntity> noSubmittedUsers = new List <UsersEntity>();

            TimeSheetApplication    tsApp   = new TimeSheetApplication();
            SearchTimeSheetsRequest request = new SearchTimeSheetsRequest(SearchType.EmailNotice,
                                                                          false, "ModifiedOn", "ASC");

            request.Office     = office;
            request.SearchDate = date;
            SearchTimeSheetsResponse response = tsApp.QueryTimesheet(request);

            if (response.IsError)
            {
                WebLogAgent.Write("SunNet.PMNew.Web.Codes.EmailExecuter.SendDailyMail:136,GetDataError");
                return(false);
            }

            StringBuilder ticketHtml = new StringBuilder();

            StringBuilder usersTickets = new StringBuilder();

            if (response.TimeSheetsList.Count == 0)
            {
                // no timesheet,clear htmlTemplate nodes
                string emptyTmeplate = UserFirstRowSection;
                emptyTmeplate = UserContentSection;
            }
            foreach (UsersEntity user in currentUsers)
            {
                List <TimeSheetTicket> userTickets = response.TimeSheetsList.FindAll(tts => tts.UserID == user.ID);
                if (userTickets == null || userTickets.Count == 0)
                {
                    noSubmittedUsers.Add(user);

                    continue;
                }
                else
                {
                    usersTickets.Append(GetUserTicketsHtml(user, userTickets));
                }
            }
            ticketHtml.Append(GetDateSectionHtml(date, response.TimeSheetsList.Count + noSubmittedUsers.Count + 1));
            ticketHtml.Append(usersTickets);
            ticketHtml.Append(GetUserNoTicketsHtml(noSubmittedUsers));
            // 不需要没有写的汇总了,因为另一封已经包含了。
            //SendNoSubmitEmail(noSubmittedUsers, date);

            foreach (UsersEntity user in noSubmittedUsers)
            {
                SendNoticeToUser(user, date);
            }

            SendSubmittedEmail(ticketHtml.ToString(), date);
            return(true);
        }
コード例 #29
0
 private SqlCommand Get(UserApplication userApplication, SqlConnection connection, SqlTransaction transaction = default) =>
 connection.CreateProcedureCommand(PROCEDURE, transaction)
 .AddInOutParameter(PARAM_ID, userApplication.Id, PARAMTYPE_ID)
 .AddInParameter(PARAM_USERID, userApplication.UserId)
 .AddInParameter(PARAM_APPLICATIONID, userApplication.ApplicationId)
 .AddInParameter(PARAM_ISAPPROVED, userApplication.IsApproved)
 .AddSessionIdParameter(_sessionProvider);
コード例 #30
0
 public ExpenseStaffController([FromServices] MISContext misContext, ILookupUser lookupUser, IHostingEnvironment server, ILookupActivity lookupActivity)
 {
     this.misContext            = misContext;
     this.currentUser           = lookupUser != null ? lookupUser.CurrentUser: null;
     this.defaultUserPictureUrl = server.WebRootPath + @"\images\DefaultUser.png";
     this.lookupActivity        = lookupActivity;
 }
コード例 #31
0
        public async Task <InsertUserResponseDTO> InsertUserAsync(InsertUserRequestDTO request)
        {
            InsertUserResponseDTO response = new InsertUserResponseDTO();

            var app = await uow.Application.GetAsync(x => x.Id == request.ApplicationId);

            if (app == null)
            {
                throw new BusinessException(ResponseCode.ApplicationNotFound);
            }

            string password       = request.Password;
            var    hashedpassword = HashHelper.GetEncryptedString(password);
            User   createdUser    = new User(request.UserName, request.Name, request.SurName, request.Email, hashedpassword[0], hashedpassword[1]);


            await uow.User.InsertAsync(createdUser);

            await uow.CompleteAsync();

            UserApplication usrApp = new UserApplication(app.Id, createdUser.Id);


            await uow.UserApplication.InsertAsync(usrApp);

            await uow.CompleteAsync();

            return(response);
        }
コード例 #32
0
        // POST api/UserApplications
        public HttpResponseMessage PostUserApplication(UserApplication userapplication)
        {
            if (ModelState.IsValid)
            {
                db.UserApplications.Add(userapplication);
                db.SaveChanges();

                HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created, userapplication);
                response.Headers.Location = new Uri(Url.Link("DefaultApi", new { id = userapplication.Id }));
                return response;
            }
            else
            {
                return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
            }
        }
コード例 #33
0
 public ActionResult Application(UserApplication application)
 {
     if (ModelState.IsValid)
     {
         var result = this.accountAdapter.SaveApplicationForUser(User.Identity.Name, application);
         if (result.StatusCode != 200)
         {
             var error = result.Errors.First();
             ModelState.AddModelError(error.MemberNames.First(), error.ErrorMessage);
         }
         else
         {
             application = result.Result;
         }
     }
     return View();
 }
コード例 #34
0
        public UserApplication RegisterApplication(string applicationName, string securetyKey, string email)
        {
            //throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotFound));
            var userProfile = Uow.UserProfiles.GetById(WebSecurity.GetUserId(email));
            if (_linkCreator.GenerateKey(userProfile.SecuretyKey + email) != securetyKey) return null;

            var app = new UserApplication
                {
                    UserApplicationId = Guid.NewGuid(),
                    Name = applicationName,
                    //Links = new List<Link>(),
                };

            if (userProfile.UserApplications == null)
                userProfile.UserApplications = new List<UserApplication>();
            userProfile.UserApplications.Add(app);

            Uow.Commit();
            return app;
        }
コード例 #35
0
        public IApplication ToUserApplication(MatchUsing MatchUsing)
        {
            UserApplication userApplication = new UserApplication();

            userApplication.Name = ApplicationName;
            userApplication.MatchUsing = MatchUsing;

            switch (MatchUsing)
            {
                case MatchUsing.WindowClass:
                    userApplication.MatchString = WindowClass;
                    break;
                case MatchUsing.WindowTitle:
                    userApplication.MatchString = WindowTitle;
                    break;
                case MatchUsing.ExecutableFilename:
                    userApplication.MatchString = WindowFilename;
                    break;
            }

            userApplication.IsRegEx = false;

            return userApplication;
        }
コード例 #36
0
        private bool SaveApplication()
        {
            // Did user select all applications
            if (cmbExistingApplication.SelectedIndex == (int)SpecialItem.AllApplications)
            {
                Applications.ApplicationManager.Instance.CurrentApplication = Applications.ApplicationManager.Instance.GetGlobalApplication();
                return true;
            }

            // Did user select an existing application
            if (cmbExistingApplication.SelectedIndex != (int)SpecialItem.AllApplications && cmbExistingApplication.SelectedIndex != (int)SpecialItem.NewApplication)
            {
                Applications.ApplicationManager.Instance.CurrentApplication = Applications.ApplicationManager.Instance.GetExistingUserApplication(cmbExistingApplication.SelectedItem.ToString());
                return true;
            }

            // User is creating a new application
            // Make sure we have a valid name
            if (String.IsNullOrEmpty(txtFriendlyName.Text.Trim()))
            {
                MessageBox.Show("Please provide a name for the applications you selected", "No Application Name Specified", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return false;
            }

            // Make sure the application name doesn't already exist
            if (Applications.ApplicationManager.Instance.ApplicationExists(txtFriendlyName.Text))
            {
                MessageBox.Show("The name you provided already exists, please provide a different name", "Name Already Exists", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return false;
            }

            // Find out how user wants to match other applications
            MatchUsing oMatchUsing = (MatchUsing)cmbMatchCriteria.SelectedIndex;

            // Create new application object
            UserApplication newApplication = new UserApplication();
            newApplication.MatchUsing = oMatchUsing;
            newApplication.Name = txtFriendlyName.Text.Trim();

            // Get the first selected item
            ApplicationListViewItem alvFirstItem = lstRunningApplications.SelectedApplication;

            switch (oMatchUsing)
            {
                case MatchUsing.WindowClass:
                    newApplication.MatchString = alvFirstItem.WindowClass;
                    break;
                case MatchUsing.WindowTitle:
                    newApplication.MatchString = alvFirstItem.WindowTitle;
                    break;
                case MatchUsing.ExecutableFilename:
                    newApplication.MatchString = alvFirstItem.WindowFilename;
                    break;
            }

            // Save new application to application list and set newly created application as selected application
            Applications.ApplicationManager.Instance.AddApplication(newApplication);
            Applications.ApplicationManager.Instance.CurrentApplication = newApplication;

            // Save entire list of applications
            Applications.ApplicationManager.Instance.SaveApplications();

            // Notify success
            return true;
        }
コード例 #37
0
ファイル: ApplicationDialog.cs プロジェクト: floatas/highsign
        private void BindExistingApplications()
        {
            // Make sure we have an application manager instance
            if (ApplicationManager == null)
                throw new Exception("You must specify an ApplicationManager before using the Application Selection Dialog");

            // Clear existing items
            cmbExistingApplication.Items.Clear();

            // Add generic application listview item
            IApplication newApplicationItem = new UserApplication() { Name = "-- New Application --" };
            IApplication allApplicationsItem = ApplicationManager.GetGlobalApplication();
            IApplication[] existingApplications = ApplicationManager.GetAvailableUserApplications();

            // Add application items to the combobox
            cmbExistingApplication.DisplayMember = "Name";
            cmbExistingApplication.Items.Add(newApplicationItem);
            cmbExistingApplication.Items.Add(allApplicationsItem);
            cmbExistingApplication.Items.AddRange(existingApplications);

            // Select new applications
            cmbExistingApplication.SelectedItem = SelectedApplication ?? newApplicationItem;
        }
コード例 #38
0
ファイル: LinksController.cs プロジェクト: rogaikopata/kurzer
        bool CheckSecuretyKey(UserApplication userApplication, string secKey, string value)
        {
            var userProfiles = Uow.UserProfiles.GetUserProfiles();
            UserProfile userProfile =null;
            foreach (var profile in userProfiles)
            {
                if( profile.UserApplications != null && profile.UserApplications.Exists(g => g == userApplication))
                     userProfile = profile;
            }

            if (userProfile == null) return false;

            return _linkCreator.GenerateKey(userProfile.SecuretyKey + value) == secKey;
        }
コード例 #39
0
 public AccountSendAppInputModel(UserApplication application)
 {
     this.Application = application;
 }
コード例 #40
0
 public AccountSendAppModel(UserInterest lead, UserApplication application)
 {
     this.Lead = lead;
     this.Input = new AccountSendAppInputModel(application);
 }