Ejemplo n.º 1
0
        public async Task <IActionResult> Create(UserCreateGet CreateUser)
        {
            var CurrentUser = await _userManager.GetUserAsync(User);

            CreateUser.ModifierCreator = CurrentUser.Id;
            var ErrorMessages = new List <ErrorMessage>();

            if (await _claimCheck.CheckClaim(CurrentUser, "ApplicationRight", this.ControllerContext.RouteData.Values["controller"].ToString() + "\\" + this.ControllerContext.RouteData.Values["action"].ToString()))
            {
                ErrorMessages = await _userProvider.CreatePostCheck(CreateUser);

                if (ErrorMessages.Count > 0)
                {
                    CreateUser = await CreateAddDropDownBoxes(CreateUser, CurrentUser.Id);
                }
                else
                {
                    var identityUser = new SipUser
                    {
                        Email    = CreateUser.Email,
                        UserName = CreateUser.Email,
                        //    FirstName = "Peter",
                        //    LastName = "le Grand",
                        //    LanguageId = 41,
                        SecurityLevelId = CreateUser.SecurityLevelId,
                        CreatedDate     = DateTime.Now,
                        ModifiedDate    = DateTime.Now
                    };
                    var x = await _userManager.CreateAsync(identityUser, CreateUser.Password);

                    if (x.Succeeded)
                    {
                        _userProvider.CreatePost(CreateUser);
                    }
                }
                UserCreateGetWithErrorMessages UserWithErrorMessage = new UserCreateGetWithErrorMessages {
                    User = CreateUser, ErrorMessages = ErrorMessages
                };
                return(Ok(UserWithErrorMessage));
            }
            ErrorMessages = await _checkProvider.NoRightsMessage(CurrentUser.Id);

            UserCreateGetWithErrorMessages UserWithNoRights = new UserCreateGetWithErrorMessages {
                User = CreateUser, ErrorMessages = ErrorMessages
            };

            return(Ok(UserWithNoRights));
        }
Ejemplo n.º 2
0
        public async Task <UserManagerResponse> RegisterUserAsync(RegisterViewModel model)
        {
            if (model == null)
            {
                throw new NullReferenceException("Reigster Model is null");
            }

            if (model.Password != model.ConfirmPassword)
            {
                return new UserManagerResponse
                       {
                           Message   = "Confirm password doesn't match the password",
                           IsSuccess = false,
                       }
            }
            ;

            var identityUser = new SipUser
            {
                Email    = model.Email,
                UserName = model.Email,
                //   FirstName = "Peter",
                //   LastName = "le Grand",
                //   LanguageId = 41,
                CreatedDate  = DateTime.Now,
                ModifiedDate = DateTime.Now
            };

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

            if (result.Succeeded)
            {
                return(new UserManagerResponse
                {
                    Message = "User created successfully!",
                    IsSuccess = true,
                });
            }

            return(new UserManagerResponse
            {
                Message = "User did not create",
                IsSuccess = false,
                Errors = result.Errors.Select(e => e.Description)
            });
        }
Ejemplo n.º 3
0
        public async Task<UserManagerResponse> LoginUserAsync(LoginViewModel model)
        {
            var user = new SipUser();
            user.Id = "abc";
            user.SecurityLevelId = 10;
            user.UserName = "******";
            user.Email= "*****@*****.**";

            if (user.Email != model.Email)
            {
                return new UserManagerResponse
                {
                    Message = "There is no user with that Email address",
                    IsSuccess = false,
                };
            }

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


            var claims = new[]
            {
                new System.Security.Claims.Claim("Email", model.Email),
                new System.Security.Claims.Claim(ClaimTypes.NameIdentifier, user.Id),
            };

            var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration["AuthSettings:Key"]));

            var token = new JwtSecurityToken(
                issuer: _configuration["AuthSettings:Issuer"],
                audience: _configuration["AuthSettings:Audience"],
                claims: claims,
                expires: DateTime.Now.AddDays(30),
                signingCredentials: new SigningCredentials(key, SecurityAlgorithms.HmacSha256));

            string tokenAsString = new JwtSecurityTokenHandler().WriteToken(token);

            return new UserManagerResponse
            {
                Message = tokenAsString,
                IsSuccess = true,
                ExpireDate = token.ValidTo,
                UserId = user.Id
            };
        }
Ejemplo n.º 4
0
        public async Task <bool> CheckClaim(SipUser User, string ClaimType, string ClaimValue)
        {
            var Roles = await _userManager.GetRolesAsync(User);

            foreach (var Role in Roles)
            {
                var Claims = await _roleManager.GetClaimsAsync(await _roleManager.FindByNameAsync(Role));

                foreach (var Claim in Claims)
                {
                    if (Claim.Value == ClaimValue & Claim.Type == ClaimType)
                    {
                        return(true);
                    }
                }
            }
            return(false);
        }
Ejemplo n.º 5
0
        public async Task <List <ToDoIndexGet> > ReturnProcessList(SipUser CurrentUser)
        {
            List <ToDoIndexGet> ToDoList = new List <ToDoIndexGet>();
            var FlowList = await _frontProcessProvider.FrontProcessToDoFlows();

            foreach (var Flow in FlowList)
            {
                var Processes = await _frontProcessProvider.FrontProcessToDoProcesses(Flow);

                foreach (var Process in Processes)
                {
                    string From = "DECLARE @LanguageId int; SELECT @LanguageId = IntPreference FROM UserPreferences WHERE USerId = '" + CurrentUser.Id + "' AND UserPreferences.PreferenceTypeId = 1 ;" +
                                  " SELECT Processes.ProcessID " +
                                  " , ISNULL(UserProcessTypeLanguage.Name,ISNULL(DefaultProcessTypeLanguage.Name,'No name for this process type')) ProcessTypeName " +
                                  " , ISNULL(UserProcessTypeFieldLanguage.Name,ISNULL(DefaultProcessTypeFieldLanguage.Name,'No name for this process type field')) ProcessTypeFieldName " +
                                  " , ISNULL(UserProcessTypeStageTypeLanguage.Name,ISNULL(DefaultProcessTypeStageTypeLanguage.Name,'No description for this process type stage type')) ProcesstypeStageTypeName" +
                                  " , ISNULL(UserProcessTypeStageLanguage.Name,ISNULL(DefaultProcessTypeStageLanguage.Name,'No description for this process type stage')) ProcesstypeStageName" +
                                  " , ProcessFields.StringValue Subject " +
                                  " , Creator.FirstName + ' ' + Creator.LastName CreatorName, Creator.PersonID CreatorID, Processes.CreatedDate, Modifier.FirstName + ' ' + Modifier.LastName ModifierName, Modifier.PersonID ModifierId, Processes.ModifiedDate " +
                                  " FROM Processes JOIN ProcessFields ON ProcessFields.ProcessId = Processes.ProcessID " +
                                  " JOIN ProcessTypeFields ON ProcessTypeFields.ProcessTypeFieldId = ProcessFields.ProcessTypeFieldID " +
                                  " LEFT JOIN (SELECT ProcessTypeId, Name FROM ProcessTypeLanguages WHERE LanguageId = @LanguageID) UserProcessTypeLanguage ON UserProcessTypeLanguage.ProcessTypeId = Processes.ProcessTypeID " +
                                  " LEFT JOIN (SELECT ProcessTypeId, Name FROM ProcessTypeLanguages JOIN Settings ON ProcessTypeLanguages.LanguageId = Settings.IntValue WHERE Settings.SettingId = 1) DefaultProcessTypeLanguage ON DefaultProcessTypeLanguage.ProcessTypeId = Processes.ProcessTypeID " +

                                  " LEFT JOIN (SELECT ProcessTypeFieldId, Name FROM ProcessTypeFieldLanguages WHERE LanguageId = @LanguageID) UserProcessTypeFieldLanguage ON UserProcessTypeFieldLanguage.ProcessTypeFieldId = ProcessTypeFields.ProcessTypeFieldID " +
                                  " LEFT JOIN (SELECT ProcessTypeFieldId, Name FROM ProcessTypeFieldLanguages JOIN Settings ON ProcessTypeFieldLanguages.LanguageId = Settings.IntValue WHERE Settings.SettingId = 1) DefaultProcessTypeFieldLanguage ON DefaultProcessTypeFieldLanguage.ProcessTypeFieldId = ProcessTypeFields.ProcessTypeFieldID " +

                                  " LEFT JOIN (SELECT ProcessTypeStageId, Name FROM ProcessTypeStageLanguages WHERE LanguageId = @LanguageID) UserProcessTypeStageLanguage ON UserProcessTypeStageLanguage.ProcessTypeStageId = Processes.ProcessTypeStageID " +
                                  " LEFT JOIN (SELECT ProcessTypeStageId, Name FROM ProcessTypeStageLanguages JOIN Settings ON ProcessTypeStageLanguages.LanguageId = Settings.IntValue WHERE Settings.SettingId = 1) DefaultProcessTypeStageLanguage ON DefaultProcessTypeStageLanguage.ProcessTypeStageId = Processes.ProcessTypeStageID " +

                                  " JOIN ProcessTypeStages ON Processes.ProcessTypeStageId = ProcessTypeStages.ProcessTypeStageId " +

                                  " LEFT JOIN (SELECT ProcessTypeStageTypeId, Name FROM ProcessTypeStageTypeLanguages WHERE LanguageId = @LanguageID) UserProcessTypeStageTypeLanguage ON UserProcessTypeStageTypeLanguage.ProcessTypeStageTypeId = ProcessTypeStages.ProcessTypeStageTypeID " +
                                  " LEFT JOIN (SELECT ProcessTypeStageTypeId, Name FROM ProcessTypeStageTypeLanguages JOIN Settings ON ProcessTypeStageTypeLanguages.LanguageId = Settings.IntValue WHERE Settings.SettingId = 1) DefaultProcessTypeStageTypeLanguage ON DefaultProcessTypeStageTypeLanguage.ProcessTypeStageTypeId = ProcessTypeStages.ProcessTypeStageTypeID " +

                                  " JOIN Persons Creator ON Creator.UserId = Processes.CreatorID " +
                                  " JOIN Persons Modifier ON Modifier.UserId = Processes.ModifierID ";
                    string Where      = " WHERE ProcessTypeFields.ProcessTypeFieldTypeId = 1 AND Processes.ProcessId = " + Process.ProcessId + " AND ";
                    string OrderBy    = " ORDER BY ISNULL(UserProcessTypeLanguage.Name,ISNULL(DefaultProcessTypeLanguage.Name,'No name for this process type')) , ProcessFields.StringValue ";
                    var    Conditions = await _frontProcessProvider.FrontProcessToDoConditions(Flow);

                    foreach (var Condition in Conditions)
                    {
                        var Fields = await _frontProcessProvider.FrontProcessToDoProcessFields(Process.ProcessId);

                        switch (Condition.ProcessTypeFlowConditionTypeID)
                        {
                        case 1:     //Creator is user
                            if (Process.CreatorId != CurrentUser.Id)
                            {
                                Where = Where + " 1 = 2 ";
                            }
                            break;

                        case 2:     //Field
                            if (
                                //PETER TODO maybe still adjust for condition <>=
                                (
                                    Fields.Find(x => x.ProcessTypeFieldID == Condition.ProcessTypeFieldID).StringValue != Condition.ProcessTypeFlowConditionString
                                    &&
                                    !new[] { 1, 2, 12, 13, 30, 31, 32 }.Contains(Fields.Find(x => x.ProcessTypeFieldID == Condition.ProcessTypeFieldID).ProcessTypeFieldTypeID)
                                )
                                ||
                                (
                                    Fields.Find(x => x.ProcessTypeFieldID == Condition.ProcessTypeFieldID).IntValue != Condition.ProcessTypeFlowConditionInt
                                    &&
                                    !new[] { 3, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 36, 37 }.Contains(Fields.Find(x => x.ProcessTypeFieldID == Condition.ProcessTypeFieldID).ProcessTypeFieldTypeID)
                                )
                                ||
                                (
                                    Fields.Find(x => x.ProcessTypeFieldID == Condition.ProcessTypeFieldID).DateTimeValue != Condition.ProcessTypeFlowConditionDate
                                    &&
                                    !new[] { 4, 5, 6, 7, 8, 9 }.Contains(Fields.Find(x => x.ProcessTypeFieldID == Condition.ProcessTypeFieldID).ProcessTypeFieldTypeID)
                                )
                                )
                            {
                            }
                            else
                            {
                                Where = Where + " 2 = 3 ";
                            }

                            break;

                        case 3:     //Security level user
                            switch (Condition.ComparisonOperatorID)
                            {
                            case 1:         //none
                                Where = Where + " 3 = 1 ";

                                break;

                            case 2:         //=
                                if (Fields.Find(x => x.ProcessTypeFieldTypeID == 12).IntValue != CurrentUser.SecurityLevelId)
                                {
                                    Where = Where + " 3 = 2 ";
                                }
                                break;

                            case 3:        //large
                                if (Fields.Find(x => x.ProcessTypeFieldTypeID == 12).IntValue >= CurrentUser.SecurityLevelId)
                                {
                                    Where = Where + " 3 = 4 ";
                                }
                                break;

                            case 4:        //Smaller
                                if (Fields.Find(x => x.ProcessTypeFieldTypeID == 12).IntValue <= CurrentUser.SecurityLevelId)
                                {
                                    Where = Where + " 3 = 5 ";
                                }
                                break;

                            case 5:        //Larger or equal
                                if (Fields.Find(x => x.ProcessTypeFieldTypeID == 12).IntValue > CurrentUser.SecurityLevelId)
                                {
                                    Where = Where + " 3 = 6 ";
                                }
                                break;

                            case 6:        //Smaller or equal
                                if (Fields.Find(x => x.ProcessTypeFieldTypeID == 12).IntValue < CurrentUser.SecurityLevelId)
                                {
                                    Where = Where + " 3 = 7 ";
                                }
                                break;

                            case 7:        //Not qual
                                if (Fields.Find(x => x.ProcessTypeFieldTypeID == 12).IntValue == CurrentUser.SecurityLevelId)
                                {
                                    Where = Where + " 3 = 8 ";
                                }
                                break;
                            }
                            break;

                        case 4:     //Role user
                            var RoleIds = await _userRoleProvider.UserRoleIDsPerUser(CurrentUser.Id);

                            if (!RoleIds.Contains(Fields.Find(x => x.ProcessTypeFieldTypeID == 30).StringValue))
                            {
                                Where = Where + " 3 = 8 ";
                            }
                            break;

                        case 5:     //Manager user field
                                    //PETER TODO
                            break;

                        case 6:     //Organization user
                            //PETER TODO do we need to split Main organization, any organization or for specific role
                            var OrganizationIds = await _organizationProvider.OrganizationIDsPerUser(CurrentUser.Id);

                            if (!OrganizationIds.Contains(Fields.Find(x => x.ProcessTypeFieldTypeID == 30).IntValue))
                            {
                                Where = Where + " 3 = 8 ";
                            }
                            break;

                        case 7:     //Organization role user
                            break;

                        case 8:     //Organization parent user

                            break;

                        case 9:     //Organization parent role user

                            break;

                        case 10:     //Project user

                            break;

                        case 11:     //Project role user
                            var ProjectIds = await _projectProvider.ProjectIDsPerUser(CurrentUser.Id);

                            if (!ProjectIds.Contains(Fields.Find(x => x.ProcessTypeFieldTypeID == 30).IntValue))
                            {
                                Where = Where + " 3 = 8 ";
                            }

                            break;

                        case 12:     //Project parent user

                            break;

                        case 13:     //Project parent role user

                            break;

                        case 14:     //Default organization user
                            var OrganizationId = await _organizationProvider.MainOrganizationIDPerUser(CurrentUser.Id);

                            if (OrganizationId != Fields.Find(x => x.ProcessTypeFieldTypeID == 30).IntValue)
                            {
                                Where = Where + " 3 = 8 ";
                            }

                            break;

                        case 15:     //Open bracket
                            Where = Where + " ( ";

                            break;

                        case 16:     //and
                            Where = Where + " AND ";

                            break;

                        case 17:     //or
                            Where = Where + " OR ";

                            break;

                        case 18:     //Close bracket
                            Where = Where + " ) ";

                            break;

                        case 19:     //User
                            if (Fields.Find(x => x.ProcessTypeFieldTypeID == 12).StringValue != CurrentUser.Id)
                            {
                                Where = Where + " 1 = 2 ";
                            }

                            break;

                        case 20:     //Relation to creator

                            break;

                        case 21:     //Relation to user field

                            break;

                        case 22:     //Classification relation

                            break;

                        case 23:     //Classification relation type
                            break;
                        }
                    }

                    var CompareWhere = " WHERE ProcessTypeFields.ProcessTypeFieldTypeId = 1 AND Processes.ProcessId = " + Process.ProcessId + " AND ";
                    if (Where == CompareWhere)
                    {
                        Where = " WHERE ProcessTypeFields.ProcessTypeFieldTypeId = 1 AND Processes.ProcessId = " + Process.ProcessId + " ";
                    }
                    var ToDos = await _frontProcessProvider.FrontProcessToDo(From + Where + OrderBy);

                    if (ToDos.Count == 1)
                    {
                        var ToDo = ToDos.First();
                        if (!ToDoList.Any(x => x.ProcessId == ToDo.ProcessId))
                        {
                            ToDoList.Add(ToDo);
                        }
                    }
                }
            }
            return(ToDoList);
        }
Ejemplo n.º 6
0
        public async Task <List <ClassificationValueForPanel> > ClassificationValueList(SipUser CurrentUser, int PageSectionId)
        {
            //string ClassificationValueConditionSQLFrom = " DECLARE @LanguageId int; " +
            //" SELECT @LanguageId = IntPreference " +
            //" FROM UserPreferences " +
            //" WHERE USerId = '" + CurrentUser.Id + "' " +
            //"  AND UserPreferences.PreferenceTypeId = 1; " +
            //" SELECT ClassificationValues.ClassificationValueID " +
            //"  , ClassificationValues.ClassificationID " +
            //"  , ISNULL(UserClassificationValueLanguage.Name, ISNULL(DefaultClassificationValueLanguage.Name, 'No name for this value')) Name " +
            //"  , ISNULL(UserClassificationValueLanguage.Description, ISNULL(DefaultClassificationValueLanguage.Description, 'No description for this value')) Description " +
            //"  , ISNULL(UserClassificationValueLanguage.MenuName, ISNULL(DefaultClassificationValueLanguage.MenuName, 'No menu name for this value')) MenuName " +
            //"  , ISNULL(UserClassificationValueLanguage.MouseOver, ISNULL(DefaultClassificationValueLanguage.MouseOver, 'No drop Mouse over for this value')) MouseOver " +
            //"  , ISNULL(UserClassificationValueLanguage.DropDownName, ISNULL(DefaultClassificationValueLanguage.DropDownName, 'No drop down name for this value')) DropDownName " +
            //"  , ClassificationValues.ParentValueID " +
            //"  , ISNULL(UserParentLanguage.Name, ISNULL(DefaultParentLanguage.Name, 'No parent name for this value')) ParentName " +
            //"  , ClassificationValues.DateFrom " +
            //"  , ClassificationValues.DateTo " +
            //"  , Creator.FirstName + ' ' + Creator.LastName CreatorName " +
            //"  , Creator.PersonID CreatorID " +
            //"  , ClassificationValues.CreatedDate " +
            //"  , Modifier.FirstName + ' ' + Modifier.LastName ModifierName " +
            //"  , Modifier.PersonID ModifierID " +
            //"  , ClassificationValues.ModifiedDate " +
            //" FROM ClassificationValues " +
            //" LEFT JOIN(SELECT ClassificationValueId, Name, Description, MenuName, MouseOver, DropDownName, PageName, PageDescription, HeaderName, HeaderDescription, TopicName FROM ClassificationValueLanguages WHERE LanguageId = @LanguageID) UserClassificationValueLanguage " +
            //"  ON UserClassificationValueLanguage.ClassificationValueId = ClassificationValues.ClassificationValueID " +
            //" LEFT JOIN(SELECT ClassificationValueId, Name, Description, MenuName, MouseOver, DropDownName, PageName, PageDescription, HeaderName, HeaderDescription, TopicName FROM ClassificationValueLanguages JOIN Settings ON ClassificationValueLanguages.LanguageId = Settings.IntValue WHERE Settings.SettingId = 1) DefaultClassificationValueLanguage " +
            //"  ON DefaultClassificationValueLanguage.ClassificationValueId = ClassificationValues.ClassificationValueID " +
            //" LEFT JOIN(SELECT ClassificationValueId, Name FROM ClassificationValueLanguages WHERE LanguageId = @LanguageID) UserParentLanguage " +
            //" ON UserParentLanguage.ClassificationValueId = ClassificationValues.ParentValueID " +
            //" LEFT JOIN(SELECT ClassificationValueId, Name FROM ClassificationValueLanguages JOIN Settings ON ClassificationValueLanguages.LanguageId = Settings.IntValue WHERE Settings.SettingId = 1) DefaultParentLanguage " +
            //" ON DefaultParentLanguage.ClassificationValueId = ClassificationValues.ParentValueID " +
            //" LEFT JOIN(SELECT ClassificationId, Name FROM ClassificationLanguages WHERE LanguageId = @LanguageID) UserClassificationLanguage " +
            //" ON UserClassificationLanguage.ClassificationId = ClassificationValues.ClassificationID " +
            //" LEFT JOIN(SELECT ClassificationId, Name FROM ClassificationLanguages JOIN Settings ON ClassificationLanguages.LanguageId = Settings.IntValue WHERE Settings.SettingId = 1) DefaultClassificationLanguage " +
            //" ON DefaultClassificationLanguage.ClassificationId = ClassificationValues.ClassificationID " +
            //" JOIN Persons Creator " +
            //" ON Creator.UserId = ClassificationValues.CreatorID " +
            //" JOIN Persons Modifier " +
            //" ON Modifier.UserId = ClassificationValues.ModifierID ";

            string ClassificationValueConditionSQLFrom     = " ";
            string ClassificationValueConditionSQLWhere    = " WHERE 1 = 1 ";
            string ClassificationValueConditionSQLContains = "";
            var    ClassificationValueConditions           = await _classificationValueProvider.PanelCondition(PageSectionId);

            foreach (var ClassificationValueCondition in ClassificationValueConditions)
            {
                switch (ClassificationValueCondition.PageSectionClassificationValueConditionTypeId)
                {
                case 1:     // Contains
                    ClassificationValueConditionSQLFrom += " JOIN ( SELECT DISTINCT ClassificationValueId FROM ClassificationValueLanguages WHERE LanguageId = @LanguageID AND CONTAINS (ClassificationValueLanguages.FullText, '" + ClassificationValueCondition.PageSectionClassificationValueConditionString + "' )) ClassificationValueTable" + ClassificationValueCondition.PageSectionClassificationValueConditionId + " ON  ClassificationValueTable" + ClassificationValueCondition.PageSectionClassificationValueConditionId + ".ClassificationValueId = ClassificationValues.ClassificationValueID ";
                    break;

                case 2:     // Classification
                    ClassificationValueConditionSQLWhere += " AND ClassificationValues.ClassificationId = " + ClassificationValueCondition.PageSectionClassificationValueConditionInt;
                    break;

                case 3:     // Level Still inactive
                    break;

                case 4:     // Parent value still inactive
                    break;
                }
            }
            var ClassificationValueList = await _classificationValueProvider.Panel(CurrentUser.Id, ClassificationValueConditionSQLFrom, ClassificationValueConditionSQLWhere, ClassificationValueConditionSQLContains);

            return(ClassificationValueList);
        }
Ejemplo n.º 7
0
        public async Task <List <ProjectForPanel> > ProjectList(SipUser CurrentUser, int PageSectionId)
        {
            //string ProjectConditionSQLFrom = " DECLARE @LanguageId int; " +
            //    " SELECT @LanguageId = IntPreference " +
            //    " FROM UserPreferences " +
            //    " WHERE USerId = '" + CurrentUser.Id + "' " +
            //    " AND UserPreferences.PreferenceTypeId = 1; " +
            //    " SELECT " +
            //    "  Projects.ProjectID " +
            //    "  , Projects.ProjectTypeID " +
            //    "  , ISNULL(UserLanguage.Name, ISNULL(DefaultLanguage.Name, 'No name for this Project')) Name " +
            //    "  , ISNULL(UserLanguage.Description, ISNULL(DefaultLanguage.Description, 'No description for this Project')) Description " +
            //    "  , ISNULL(UserLanguage.MenuName, ISNULL(DefaultLanguage.MenuName, 'No menu name for this Project')) MenuName " +
            //    "  , ISNULL(UserLanguage.MouseOver, ISNULL(DefaultLanguage.MouseOver, 'No mouse over for this Project')) MouseOver " +
            //    "  , ISNULL(UserTypeLanguage.Name, ISNULL(DefaultTypeLanguage.Name, 'No name for this Project type')) ProjectTypeName " +
            //    "  , ISNULL(UserStatusName.Customization, StatusName.Name) StatusName " +
            //    "  , Creator.FirstName + ' ' + Creator.LastName CreatorName " +
            //    "  , Creator.PersonID CreatorID " +
            //    "  , Projects.CreatedDate " +
            //    "  , Modifier.FirstName + ' ' + Modifier.LastName ModifierName " +
            //    "  , Modifier.PersonId ModifierID " +
            //    "  , Projects.ModifiedDate " +
            //    "  , CONCAT('controlID', Projects.ProjectId) ControlId " +
            //    " FROM Projects JOIN Statuses " +
            //    "  ON Statuses.StatusId = Projects.StatusID " +
            //    " JOIN ProjectTypes " +
            //    "  ON Projects.ProjectTypeId = ProjectTypes.ProjectTypeID " +
            //    " LEFT JOIN(SELECT ProjectId, Name, Description, MenuName, MouseOver FROM ProjectLanguages WHERE LanguageId = @LanguageID) UserLanguage " +
            //    "  ON UserLanguage.ProjectID = Projects.ProjectID " +
            //    " LEFT JOIN(SELECT ProjectId, Name, Description, MenuName, MouseOver FROM ProjectLanguages JOIN Settings ON ProjectLanguages.LanguageId = Settings.IntValue WHERE Settings.SettingId = 1) DefaultLanguage " +
            //    "  ON DefaultLanguage.ProjectId = Projects.ProjectID " +
            //    " LEFT JOIN(SELECT ProjectTypeId, Name FROM ProjectTypeLanguages WHERE LanguageId = @LanguageID) UserTypeLanguage " +
            //    "  ON UserTypeLanguage.ProjectTypeID = Projects.ProjectTypeID " +
            //    "LEFT JOIN(SELECT ProjectTypeId, Name FROM ProjectTypeLanguages JOIN Settings ON ProjectTypeLanguages.LanguageId = Settings.IntValue WHERE Settings.SettingId = 1) DefaultTypeLanguage " +
            //    " ON DefaultTypeLanguage.ProjectTypeID = Projects.ProjectTypeID " +
            //    " JOIN UITermLanguages StatusName " +
            //    " ON Statuses.NameTermId = StatusName.UITermId " +
            //    " LEFT JOIN(SELECT* FROM UITermLanguageCustomizations WHERE UITermLanguageCustomizations.LanguageId = @LanguageID)  UserStatusName " +
            //    "  ON Statuses.NameTermId = UserStatusName.UITermId" +
            //    " JOIN Persons Creator " +
            //    "  ON Creator.UserId = Projects.CreatorID " +
            //    " JOIN Persons Modifier " +
            //    "  ON Modifier.UserId = Projects.ModifierID ";

            string ProjectConditionSQLFrom     = " ";
            string ProjectConditionSQLWhere    = " WHERE  StatusName.LanguageId = @LanguageId  ";
            string ProjectConditionSQLContains = "";
            var    ProjectConditions           = await _projectProvider.PanelCondition(PageSectionId);

            foreach (var ProjectCondition in ProjectConditions)
            {
                switch (ProjectCondition.PageSectionProjectConditionTypeId)
                {
                case 1:     // Parent Project
                    ProjectConditionSQLWhere += " AND Projects.ParentProjectId = " + ProjectCondition.PageSectionProjectConditionInt;
                    break;

                case 2:     // My Project
                    ProjectConditionSQLWhere += " AND Projects.ProjectId IN (SELECT AspNetRoles.ProjectId FROM AspNetRoles JOIN AspNetUserRoles ON AspNetRoles.Id JOIN AspNetUserRoles.RoleId WHERE  AspNetUserRoles.UserId = '" + CurrentUser.Id + "' )  ";
                    break;

                case 3:     // Contains
                    ProjectConditionSQLFrom += " JOIN ( SELECT ProjectId FROM ProjectLanguages WHERE LanguageId = @LanguageID AND CONTAINS (ProjectLanguages.FullText, '" + ProjectCondition.PageSectionProjectConditionString + "' )) ProjectTable" + ProjectCondition.PageSectionProjectConditionId + " ON  ProjectTable" + ProjectCondition.PageSectionProjectConditionId + ".ProjectId = Projects.ProjectID ";
                    break;

                case 4:     // Project type
                    ProjectConditionSQLWhere += " AND Projects.ProjectTypeId = " + ProjectCondition.PageSectionProjectConditionInt;
                    break;
                }
            }
            var ProjectList = await _projectProvider.Panel(CurrentUser.Id, ProjectConditionSQLFrom, ProjectConditionSQLWhere, ProjectConditionSQLContains);

            return(ProjectList);
        }
Ejemplo n.º 8
0
        public async Task <List <PersonForPanel> > PersonList(SipUser CurrentUser, int PageSectionId)
        {
            //string PersonConditionSQLFrom = " DECLARE @LanguageId int; " +
            //    " SELECT @LanguageId = IntPreference " +
            //    " FROM UserPreferences " +
            //    " WHERE USerId = '" + CurrentUser.Id + "' " +
            //    " AND UserPreferences.PreferenceTypeId = 1; " +
            //    " SELECT ISNULL(Salutation, '') Salutation " +
            //    "  , ISNULL(FirstName, '')FirstName " +
            //    "  , ISNULL(MiddleName, '') MiddleName " +
            //    "  , ISNULL(LastName, '') LastName " +
            //    "  , ISNULL(NickName, '') NickName " +
            //    "  , ISNULL(FirstNameLocal, '') FirstNameLocal " +
            //    "  , ISNULL(MiddleNameLocal, '') MiddleNameLocal " +
            //    "  , ISNULL(LastNameLocal, '') LastNameLocal " +
            //    "  , CASE WHEN UserID IS NULL THEN 1 ELSE 0 END AS IsUser " +
            //    "  , ISNULL(UserLanguage.Name, ISNULL(DefaultLanguage.Name, 'No name for the organization')) DefaultOrganizationName " +
            //    "  , Creator.FirstName + ' ' + Creator.LastName CreatorName " +
            //    "  , Creator.PersonID CreatorID " +
            //    "  , Persons.CreatedDate " +
            //    "  , Modifier.FirstName + ' ' + Modifier.LastName ModifierName " +
            //    "  , Modifier.PersonId ModifierID " +
            //    "  , Persons.ModifiedDate " +
            //    "  , CONCAT('controlID', Persons.PersonId) ControlId " +
            //    " FROM  Persons " +
            //    " LEFT JOIN(SELECT OrganizationId, Name FROM OrganizationLanguages WHERE LanguageId = @LanguageID) UserLanguage " +
            //    "  ON UserLanguage.OrganizationID = Persons.DefaultOrganizationID " +
            //    " LEFT JOIN(SELECT OrganizationId, Name FROM OrganizationLanguages JOIN Settings ON OrganizationLanguages.LanguageId = Settings.IntValue WHERE Settings.SettingId = 1) DefaultLanguage " +
            //    "  ON DefaultLanguage.OrganizationId = Persons.DefaultOrganizationID " +
            //    " JOIN Persons Creator " +
            //    "  ON Creator.UserId = Persons.CreatorID " +
            //    " JOIN Persons Modifier " +
            //    "  ON Modifier.UserId = Persons.ModifierID ";

            string PersonConditionSQLFrom     = "  ";
            string PersonConditionSQLWhere    = " WHERE 1=1 ";
            string PersonConditionSQLContains = "";
            var    PersonConditions           = await _personProvider.PanelCondition(PageSectionId);

            foreach (var PersonCondition in PersonConditions)
            {
                switch (PersonCondition.PageSectionPersonConditionTypeId)
                {
                case 1:     // Contains
                    PersonConditionSQLWhere += " AND CONTAINS (Persons.FullText, '" + PersonCondition.PageSectionPersonConditionString + "' ) ";

                    //                        PersonConditionSQLWhere += " AND CONTAINS = " + PersonCondition.PageSectionPersonConditionInt;
                    break;

                case 2:     // Default organization
                    PersonConditionSQLWhere += " AND Persons.DefaultOrganizationId = " + PersonCondition.PageSectionPersonConditionInt;
                    break;

                case 3:     // Organization
                    PersonConditionSQLWhere += " AND Persons.PersonId IN (SELECT  PersonId FROM AspNetRoles JOIN AspNetUserRoles ON AspNetRoles.Id = AspNetUserRoles.RoleId JOIN Persons ON Persons.UserID = AspNetUserRoles.UserId WHERE AspNetRoles.OrganizationId = " + PersonCondition.PageSectionPersonConditionInt + " ) ";
                    break;

                case 4:     // Project
                    PersonConditionSQLWhere += " AND Persons.PersonId IN (SELECT  PersonId FROM AspNetRoles JOIN AspNetUserRoles ON AspNetRoles.Id = AspNetUserRoles.RoleId JOIN Persons ON Persons.UserID = AspNetUserRoles.UserId WHERE AspNetRoles.ProjectId = " + PersonCondition.PageSectionPersonConditionInt + " ) ";
                    break;

                case 5:     // Country
                    PersonConditionSQLWhere += " AND Persons.PersonId IN (SELECT PersonId FROM PersonAddresses WHERE CountryId = " + PersonCondition.PageSectionPersonConditionInt + " ) ";
                    break;

                case 6:     // State / Province
                    PersonConditionSQLWhere += " AND Persons.PersonId IN (SELECT PersonId FROM PersonAddresses WHERE ProvinceState LIKE '%" + PersonCondition.PageSectionPersonConditionString + "%' ) ";
                    break;

                case 7:     // City
                    PersonConditionSQLWhere += " AND Persons.PersonId IN (SELECT PersonId FROM PersonAddresses WHERE City LIKE '%" + PersonCondition.PageSectionPersonConditionString + "%' ) ";
                    break;

                case 8:     // My relations
                    PersonConditionSQLWhere += " AND ( Persons.PersonId IN (SELECT FromPersonId FROM PersonRelations JOIN Persons ON PersonRelations.ToPersonID = PersonId WHERE UserId = '" + CurrentUser.Id + "') OR Persons.PersonId IN (SELECT ToPersonId FROM PersonRelations JOIN Persons ON PersonRelations.FromPersonID = PersonId WHERE UserId = '" + CurrentUser.Id + "') ) ";
                    break;

                case 9:     // Is user
                    if (PersonCondition.PageSectionPersonConditionInt == 1)
                    {
                        PersonConditionSQLWhere += " AND Persons.UserId IS NOT NULL ";
                    }
                    else
                    {
                        PersonConditionSQLWhere += " AND Persons.UserId IS NULL ";
                    }
                    break;
                }
            }
            var PersonList = await _personProvider.Panel(CurrentUser.Id, PersonConditionSQLFrom, PersonConditionSQLWhere, PersonConditionSQLContains);

            return(PersonList);
        }
Ejemplo n.º 9
0
        public async Task <List <ContentForPanel> > ContentList(SipUser CurrentUser, int PageSectionId)
        {
            string ContentConditionSQLFrom =
                " DECLARE @LanguageId int; " +
                " SELECT @LanguageId = IntPreference " +
                " FROM UserPreferences " +
                " WHERE USerId = '" + CurrentUser.Id + "' " +
                " AND UserPreferences.PreferenceTypeId = 1; " +
                " SELECT Contents.ContentID " +
                ", Contents.Title " +
                ", ContentVersions.Description " +
                ", ISNULL(UserLanguage.Name, ISNULL(DefaultLanguage.Name, 'No name for this ContentType')) ContentTypeName " +
                ", Creator.FirstName + ' ' + Creator.LastName CreatorName " +
                ", Creator.PersonID CreatorID " +
                ", Contents.CreatedDate " +
                ", Modifier.FirstName + ' ' + Modifier.LastName ModifierName " +
                ", Modifier.PersonId ModifierID " +
                ", Contents.ModifiedDate " +
                ", CONCAT('controlID', Contents.ContentId) ControlId " +
                " FROM Contents JOIN ContentVersions ON Contents.ActiveVersionId = ContentVersions.ContentversionID  " +
                " JOIN ContentTypes " +
                " ON Contents.ContentTypeID = ContentTypes.ContentTypeID " +
                " LEFT JOIN(SELECT ContentTypeId, Name, Description, MenuName, MouseOver, ContentTypeLanguageID FROM ContentTypeLanguages WHERE LanguageId = @LanguageID) UserLanguage " +
                " ON UserLanguage.ContentTypeID = ContentTypes.ContentTypeID " +
                " LEFT JOIN(SELECT ContentTypeId, Name, Description, MenuName, MouseOver, ContentTypeLanguageID FROM ContentTypeLanguages JOIN Settings ON ContentTypeLanguages.LanguageId = Settings.IntValue WHERE Settings.SettingId = 1) DefaultLanguage " +
                " ON DefaultLanguage.ContentTypeId = ContentTypes.ContentTypeID " +
                " JOIN Persons Creator " +
                " ON Creator.UserId = Contents.CreatorID " +
                " JOIN Persons Modifier " +
                " ON Modifier.UserId = Contents.ModifierID ";
            string ContentConditionSQLWhere    = " WHERE 1=1 ";
            string ContentConditionSQLContains = "";
            var    ContentConditions           = await _contentProvider.PanelCondition(PageSectionId);

            foreach (var ContentCondition in ContentConditions)
            {
                switch (ContentCondition.PageSectionContentConditionTypeId)
                {
                case 1:     // User
                    ContentConditionSQLWhere += "";
                    break;

                case 2:     // Contains
                    ContentConditionSQLContains += "";
                    break;

                case 3:     // Organization
                    ContentConditionSQLWhere += " AND Contents.OrganizationId = " + ContentCondition.PageSectionContentConditionInt + " ";
                    break;

                case 4:     // Project
                    ContentConditionSQLWhere += " AND Contents.ProjectId = " + ContentCondition.PageSectionContentConditionInt + " ";
                    break;

                case 5:     // Content type
                    ContentConditionSQLWhere += " AND Contents.ContentTypeId = " + ContentCondition.PageSectionContentConditionInt + " ";
                    break;

                case 6:     // Content status
                    ContentConditionSQLWhere += " AND Contents.ContentStatusId = " + ContentCondition.PageSectionContentConditionInt + " ";
                    break;

                case 7:     // Language
                    ContentConditionSQLWhere += " AND Contents.LanguageId = " + ContentCondition.PageSectionContentConditionInt + " ";
                    break;

                case 8:     // Security level
                    ContentConditionSQLWhere += " AND Contents.SecurityLevelId = " + ContentCondition.PageSectionContentConditionInt + " ";
                    break;

                case 9:     // Creator
                    ContentConditionSQLWhere += " AND Contents.CreatorId = '" + ContentCondition.PageSectionContentConditionString + "' ";
                    break;

                case 10:     // Modifier
                    ContentConditionSQLWhere += " AND Contents.ModifierId = '" + ContentCondition.PageSectionContentConditionString + "' ";
                    break;

                case 11:     // ClassificationValue
                    ContentConditionSQLWhere += " AND Contents.ContentId IN (SELECT CotentId FROM ContentClassificationValues WHERE ClassificationValueId = " + ContentCondition.PageSectionContentConditionInt + ") ";
                    break;

                case 12:     // Created from date
                    ContentConditionSQLWhere += " AND Contents.CreatedDate > '" + ContentCondition.PageSectionContentConditionDate + "' ";
                    break;

                case 13:     // Created to date
                    ContentConditionSQLWhere += " AND Contents.CreatedDate < '" + ContentCondition.PageSectionContentConditionDate + "' ";
                    break;

                case 14:     // Created from date
                    ContentConditionSQLWhere += " AND Contents.ModifiedDate > '" + ContentCondition.PageSectionContentConditionDate + "' ";
                    break;

                case 15:     // Created to date
                    ContentConditionSQLWhere += " AND Contents.ModifiedDate < '" + ContentCondition.PageSectionContentConditionDate + "' ";
                    break;
                }
            }
            var ContentList = await _contentProvider.Panel(ContentConditionSQLFrom, ContentConditionSQLWhere, ContentConditionSQLContains);

            return(ContentList);
        }
Ejemplo n.º 10
0
        public async Task <List <OrganizationForPanel> > OrganizationList(SipUser CurrentUser, int PageSectionId)
        {
            //string OrganizationConditionSQLFrom = " DECLARE @LanguageId int; " +
            //    " SELECT @LanguageId = IntPreference " +
            //    " FROM UserPreferences " +
            //    " WHERE USerId = '" + CurrentUser.Id + "' " +
            //    " AND UserPreferences.PreferenceTypeId = 1; " +
            //    " SELECT " +
            //    "  Organizations.OrganizationID " +
            //    "  , Organizations.OrganizationTypeID " +
            //    "  , ISNULL(UserLanguage.Name, ISNULL(DefaultLanguage.Name, \"No name for this organization\")) Name " +
            //    "  , ISNULL(UserLanguage.Description, ISNULL(DefaultLanguage.Description, \"No description for this organization\")) Description " +
            //    "  , ISNULL(UserLanguage.MenuName, ISNULL(DefaultLanguage.MenuName, \"No menu name for this organization\")) MenuName " +
            //    "  , ISNULL(UserLanguage.MouseOver, ISNULL(DefaultLanguage.MouseOver, \"No mouse over for this organization\")) MouseOver " +
            //    "  , ISNULL(UserTypeLanguage.Name, ISNULL(DefaultTypeLanguage.Name, \"No name for this organization type\")) OrganizationTypeName " +
            //    "  , ISNULL(UserStatusName.Customization, StatusName.Name) StatusName " +
            //    "  , OrganizationTypes.Internal " +
            //    "  , OrganizationTypes.LegalEntity " +
            //    "  , Creator.FirstName + ' ' + Creator.LastName CreatorName " +
            //    "  , Creator.PersonID CreatorID " +
            //    "  , Organizations.CreatedDate " +
            //    "  , Modifier.FirstName + ' ' + Modifier.LastName ModifierName " +
            //    "  , Modifier.PersonId ModifierID " +
            //    "  , Organizations.ModifiedDate " +
            //    "  , CONCAT('controlID', Organizations.OrganizationId) ControlId " +
            //    " FROM Organizations JOIN Statuses " +
            //    "  ON Statuses.StatusId = Organizations.StatusID " +
            //    " JOIN OrganizationTypes " +
            //    "  ON Organizations.OrganizationTypeId = OrganizationTypes.OrganizationTypeID " +
            //    " LEFT JOIN(SELECT OrganizationId, Name, Description, MenuName, MouseOver FROM OrganizationLanguages WHERE LanguageId = @LanguageID) UserLanguage " +
            //    "  ON UserLanguage.OrganizationID = Organizations.OrganizationID " +
            //    " LEFT JOIN(SELECT OrganizationId, Name, Description, MenuName, MouseOver FROM OrganizationLanguages JOIN Settings ON OrganizationLanguages.LanguageId = Settings.IntValue WHERE Settings.SettingId = 1) DefaultLanguage " +
            //    "  ON DefaultLanguage.OrganizationId = Organizations.OrganizationID " +
            //    " LEFT JOIN(SELECT OrganizationTypeId, Name FROM OrganizationTypeLanguages WHERE LanguageId = @LanguageID) UserTypeLanguage " +
            //    "  ON UserTypeLanguage.OrganizationTypeID = Organizations.OrganizationTypeID " +
            //    "LEFT JOIN(SELECT OrganizationTypeId, Name FROM OrganizationTypeLanguages JOIN Settings ON OrganizationTypeLanguages.LanguageId = Settings.IntValue WHERE Settings.SettingId = 1) DefaultTypeLanguage " +
            //    " ON DefaultTypeLanguage.OrganizationTypeID = Organizations.OrganizationTypeID " +
            //    " JOIN UITermLanguages StatusName " +
            //    " ON Statuses.NameTermId = StatusName.UITermId " +
            //    " LEFT JOIN(SELECT* FROM UITermLanguageCustomizations WHERE UITermLanguageCustomizations.LanguageId = @LanguageID)  UserStatusName " +
            //    "  ON Statuses.NameTermId = UserStatusName.UITermId" +
            //    " JOIN Persons Creator " +
            //    "  ON Creator.UserId = Organizations.CreatorID " +
            //    " JOIN Persons Modifier " +
            //    "  ON Modifier.UserId = Organizations.ModifierID ";

            string OrganizationConditionSQLFrom     = "  ";
            string OrganizationConditionSQLWhere    = " WHERE  StatusName.LanguageId = @LanguageId ";
            string OrganizationConditionSQLContains = "";
            var    OrganizationConditions           = await _organizationProvider.PanelCondition(PageSectionId);

            foreach (var OrganizationCondition in OrganizationConditions)
            {
                switch (OrganizationCondition.PageSectionOrganizationConditionTypeId)
                {
                case 1:     // Contains
                    OrganizationConditionSQLFrom += " JOIN ( SELECT OrganizationId FROM OrganizationLanguages WHERE LanguageId = @LanguageID AND CONTAINS (OrganizationLanguages.FullText, '" + OrganizationCondition.PageSectionOrganizationConditionString + "' )) OrganizationTable" + OrganizationCondition.PageSectionOrganizationConditionId + " ON  OrganizationTable" + OrganizationCondition.PageSectionOrganizationConditionId + ".OrganizationId = Organizations.OrganizationID ";

//                        OrganizationConditionSQLWhere += " AND CONTAINS = " + OrganizationCondition.PageSectionOrganizationConditionInt;
                    break;

                case 2:     // Parent organization
                    OrganizationConditionSQLWhere += " AND Organizations.ParentOrganizationId = " + OrganizationCondition.PageSectionOrganizationConditionInt;
                    break;

                case 3:     // Country
                    OrganizationConditionSQLWhere += " AND Organizations.OrganizationId IN (SELECT OrganizationId FROM OrganizationAddresses WHERE CountryId = " + OrganizationCondition.PageSectionOrganizationConditionInt + " ) ";
                    break;

                case 4:     // State province
                    OrganizationConditionSQLWhere += " AND Organizations.OrganizationId IN (SELECT OrganizationId FROM OrganizationAddresses WHERE ProvinceState LIKE '%" + OrganizationCondition.PageSectionOrganizationConditionString + "%' ) ";
                    break;

                case 5:     // Organization type
                    OrganizationConditionSQLWhere += " AND Organizations.OrganizationTypeId = " + OrganizationCondition.PageSectionOrganizationConditionInt;
                    break;

                case 6:     // My organization
                    OrganizationConditionSQLWhere += " AND Organizations.OrganizationId IN (SELECT AspNetRoles.OrganizationId FROM AspNetRoles JOIN AspNetUserRoles ON AspNetRoles.Id JOIN AspNetUserRoles.RoleId WHERE  AspNetUserRoles.UserId = '" + CurrentUser.Id + "' )  ";
                    break;

                case 7:     // Internal
                    OrganizationConditionSQLWhere += " AND Organizations.OrganizationTypeId IN (SELECT OrganizationTypeId FROM OrganizationTypes WHERE Internal = " + OrganizationCondition.PageSectionOrganizationConditionInt + " )";
                    break;

                case 8:     // City
                    OrganizationConditionSQLWhere += " AND Organizations.OrganizationId IN (SELECT OrganizationId FROM OrganizationAddresses WHERE City LIKE '%" + OrganizationCondition.PageSectionOrganizationConditionString + "%' ) ";
                    break;

                case 9:     // Legal entity
                    OrganizationConditionSQLWhere += " AND Organizations.OrganizationTypeId IN (SELECT OrganizationTypeId FROM OrganizationTypes WHERE LegalEntity = " + OrganizationCondition.PageSectionOrganizationConditionInt + " )";
                    break;
                }
            }
            var OrganizationList = await _organizationProvider.Panel(CurrentUser.Id, OrganizationConditionSQLFrom, OrganizationConditionSQLWhere, OrganizationConditionSQLContains);

            return(OrganizationList);
        }
Ejemplo n.º 11
0
        public async Task <List <NewProcessTypeList> > ReturnProcessTypeList(SipUser CurrentUser)
        {
            List <NewProcessTypeList> ProcesstypeList = new List <NewProcessTypeList>();
            var TemplateIdFlowIds = await _processProvider.CreateGetInitialTemplateFlowList();

            foreach (var TemplateIdFlowId in TemplateIdFlowIds)
            {
                string From = "DECLARE @LanguageId int; SELECT @LanguageId = IntPreference FROM UserPreferences WHERE USerId = '" + CurrentUser.Id + "' AND UserPreferences.PreferenceTypeId = 1 ;" +
                              " SELECT  ProcessTypeFlowConditions.ProcessTypeID , ProcessTypeGroupID, ISNULL(UserLanguage.Name,ISNULL(DefaultLanguage.Name,'No name for this classification')) Name, TRIM(Icons.FileName) FileName FROM ProcessTypeFlowConditions" +
                              " JOIN ProcessTypes ON ProcessTypeFlowConditions.ProcessTypeId = ProcessTypes.ProcessTypeId " +
                              " JOIN Icons ON ICons.IconId = ProcessTypes.IconId " +
                              " LEFT JOIN(SELECT ProcessTypeId, Name FROM ProcessTypeLanguages WHERE LanguageId = @LanguageID) UserLanguage " +
                              "  ON UserLanguage.ProcessTypeID = ProcessTypeFlowConditions.ProcessTypeID " +
                              "LEFT JOIN(SELECT ProcessTypeId, Name FROM ProcessTypeLanguages JOIN Settings ON ProcessTypeLanguages.LanguageId = Settings.IntValue WHERE Settings.SettingId = 1) DefaultLanguage " +
                              "  ON DefaultLanguage.ProcessTypeID = ProcessTypeFlowConditions.ProcessTypeID ";
                string Where      = " WHERE ProcessTypeFlowId = " + TemplateIdFlowId.ProcessTypeFlowId + " AND ";
                var    Conditions = await _processProvider.CreateGetInitialTemplateFlowConditionList(TemplateIdFlowId.ProcessTypeFlowId);

                foreach (var Condition in Conditions)
                {
                    if (Condition.ProcessTypeFlowConditionTypeId == 1) //Creator is user
                    {
                        //                    From = From + NewProcess. '  '
                        //Have to check if this can be used in general or only new processes
                    }
                    if (Condition.ProcessTypeFlowConditionTypeId == 2) //  Field
                    {
                        //NOT RELEVANT FOR NEW PROCESS
                        //if (!new[] { 1, 2, 12, 13, 30, 31, 32 }.Contains(Condition.Fie.ProcessTypeFieldTypeId))
                        //{
                        //    Where = Where + " 1=2 ";
                        //}
                    }
                    if (Condition.ProcessTypeFlowConditionTypeId == 3) //  Security level user
                    {
                        var UserSecurityLevel = await _userProvider.UserSecurityLevel(CurrentUser.Id);

                        if (Condition.ComparisonOperatorId == 1)  //Comparison blank
                        {
                            Where = Where + " 1=1 ";
                        }
                        if (Condition.ComparisonOperatorId == 2 && UserSecurityLevel != Condition.StageFieldIntValue) //Equal
                        {
                            Where = Where + UserSecurityLevel.ToString() + " =  " + Condition.ProcessTypeFlowConditionInt.ToString();
                        }
                        if (Condition.ComparisonOperatorId == 3 && UserSecurityLevel <= Condition.StageFieldIntValue) // >
                        {
                            Where = Where + UserSecurityLevel.ToString() + " > " + Condition.ProcessTypeFlowConditionInt.ToString();
                        }
                        if (Condition.ComparisonOperatorId == 4 && UserSecurityLevel >= Condition.StageFieldIntValue) //<
                        {
                            Where = Where + UserSecurityLevel.ToString() + " <  " + Condition.ProcessTypeFlowConditionInt.ToString();
                        }
                        if (Condition.ComparisonOperatorId == 5 && UserSecurityLevel < Condition.StageFieldIntValue) //>=
                        {
                            Where = Where + UserSecurityLevel.ToString() + " >=  " + Condition.ProcessTypeFlowConditionInt.ToString();
                        }
                        if (Condition.ComparisonOperatorId == 6 && UserSecurityLevel > Condition.StageFieldIntValue) //<=
                        {
                            Where = Where + UserSecurityLevel.ToString() + " <=  " + Condition.ProcessTypeFlowConditionInt.ToString();
                        }
                        if (Condition.ComparisonOperatorId == 7 && UserSecurityLevel == Condition.StageFieldIntValue) //<>
                        {
                            Where = Where + UserSecurityLevel.ToString() + " <> " + Condition.ProcessTypeFlowConditionInt.ToString();
                        }
                    }
                    if (Condition.ProcessTypeFlowConditionTypeId == 4) // Role user
                    {
                        var Roles = await _userProvider.RoleIdForSpecificUser(CurrentUser.Id);

                        for (int i = 0; i < Roles.Count; i++)
                        {
                            Roles[i] = Roles[i].Replace("\t", "");
                        }
                        if (!Roles.Contains(Condition.ProcessTypeFlowConditionString.Replace("\t", "")))
                        {
                            Where = Where + " 14=2 ";
                        }
                    }
                    //PETER not sure yet
                    if (Condition.ProcessTypeFlowConditionTypeId == 5) //  Manager user field
                    {
                    }
                    if (Condition.ProcessTypeFlowConditionTypeId == 6) //  Organization user
                    {
                        var Organizations = await _userProvider.UserOrganizations(CurrentUser.Id);

                        if (!Organizations.Contains(Condition.ProcessTypeFlowConditionInt))
                        {
                            Where = Where + " 1=42 ";
                        }
                    }
                    if (Condition.ProcessTypeFlowConditionTypeId == 7) //  Organization role user
                    {
                        var RoleId        = Condition.ProcessTypeFlowConditionString;
                        var Organizations = await _userProvider.UserRoleOrganizations(CurrentUser.Id, RoleId);

                        if (!Organizations.Contains(Condition.ProcessTypeFlowConditionInt))
                        {
                            Where = Where + " 1=25 ";
                        }
                    }
                    //PETER TODO
                    if (Condition.ProcessTypeFlowConditionTypeId == 8) //  Organization parent user
                    {
                    }
                    if (Condition.ProcessTypeFlowConditionTypeId == 9) //  Organization parent role user
                    {
                    }
                    if (Condition.ProcessTypeFlowConditionTypeId == 10) // Project user
                    {
                        var Projects = await _userProvider.UserProjects(CurrentUser.Id);

                        if (!Projects.Contains(Condition.ProcessTypeFlowConditionInt))
                        {
                            Where = Where + " 1=26 ";
                        }
                    }
                    if (Condition.ProcessTypeFlowConditionTypeId == 11) //Project role user
                    {
                        var RoleId   = Condition.ProcessTypeFlowConditionString;
                        var Projects = await _userProvider.UserRoleProjects(CurrentUser.Id, RoleId);

                        if (!Projects.Contains(Condition.ProcessTypeFlowConditionInt))
                        {
                            Where = Where + " 1=27 ";
                        }
                    }
                    if (Condition.ProcessTypeFlowConditionTypeId == 12) //Project parent user
                    {
                    }
                    if (Condition.ProcessTypeFlowConditionTypeId == 13) //Project parent role user
                    {
                    }
                    if (Condition.ProcessTypeFlowConditionTypeId == 14) //Default organization user
                    {
                        var Organization = await _userProvider.UserDefaultOrganization(CurrentUser.Id);

                        if (Organization != Condition.ProcessTypeFlowConditionInt)
                        {
                            Where = Where + " 1=28 ";
                        }
                    }
                    if (Condition.ProcessTypeFlowConditionTypeId == 15) //Open bracket
                    {
                        Where = Where + " ( ";
                    }
                    if (Condition.ProcessTypeFlowConditionTypeId == 16) //and
                    {
                        Where = Where + " AND ";
                    }
                    if (Condition.ProcessTypeFlowConditionTypeId == 17) //or
                    {
                        Where = Where + " OR ";
                    }
                    if (Condition.ProcessTypeFlowConditionTypeId == 18) //Close bracket
                    {
                        Where = Where + " ) ";
                    }
                    if (Condition.ProcessTypeFlowConditionTypeId == 19) //User
                    {
                        if (CurrentUser.Id != Condition.ProcessTypeFlowConditionString)
                        {
                            Where = Where + " 1=29 ";
                        }
                    }
                    if (Condition.ProcessTypeFlowConditionTypeId == 20) //Relation to creator
                    {
                    }
                    if (Condition.ProcessTypeFlowConditionTypeId == 21) //Relation to user field
                    {
                    }
                    if (Condition.ProcessTypeFlowConditionTypeId == 22) //Classification relation
                    {
                    }
                    if (Condition.ProcessTypeFlowConditionTypeId == 23) //Classification relation type
                    {
                    }
                }
                if (Where == " WHERE ProcessTypeFlowId = " + TemplateIdFlowId.ProcessTypeFlowId + " AND ")
                {
                    Where = " WHERE ProcessTypeFlowId = " + TemplateIdFlowId.ProcessTypeFlowId;
                }
                if (!ProcesstypeList.Any(t => t.ProcessTypeId == TemplateIdFlowId.ProcessTypeId))
                {
                    var y = await _frontProcessProvider.CreateGetTemplateList(From + Where);

                    if (y.Count != 0)
                    {
                        var z = y.First();
                        z.FileName = "/images/icons/" + z.FileName;
                        ProcesstypeList.Add(z);
                    }
                }
            }
            return(ProcesstypeList);
        }
Ejemplo n.º 12
0
 public async Task <bool> CheckClaim(SipUser User, string ClaimType, string ClaimValue)
 {
     return(true);
 }
Ejemplo n.º 13
0
 public SipMessage(SipUser sipUser, LocalSipUserAgentServer localSipUas, SipTransportManager sipTransportManager, SipResponseCode sipResponse)
 {
     this.messageType = MessageType.Response;
     this.statusLine  = new StatusLine(localSipUas, sipTransportManager.SipProtocol, sipResponse);
     CreateCommonHeaders(sipUser, localSipUas, sipTransportManager);
 }
Ejemplo n.º 14
0
 public SipMessage(SipUser sipUser, LocalSipUserAgentServer localSipUas, SipTransportManager sipTransportManager, SipMethod sipMethod)
 {
     this.messageType = MessageType.Request;
     this.requestLine = new RequestLine(localSipUas, sipTransportManager.SipProtocol, sipMethod);
     CreateCommonHeaders(sipUser, localSipUas, sipTransportManager);
 }
Ejemplo n.º 15
0
        public async Task <int> ReturnProcessTypeFlowPass(SipUser CurrentUser, FrontProcessUpdateGet Process)
        {
            var Flows = await _frontProcessProvider.FrontProcessUpdateReturnFlows(Process.ProcessTypeStageId);

            foreach (var FlowId in Flows)
            {
                string From   = "SELECT ProcessTypeFlowId FROM ProcessTypeFlowPasses";
                string Where  = " WHERE ProcessTypeFlowId = " + FlowId + " AND ";
                var    Passes = await _frontProcessProvider.FrontProcessNewReturnFlowPasses(FlowId);

                foreach (var Pass in Passes)
                {
                    if (Pass.ProcessTypeFlowConditionTypeId == 1) //Creator is user
                    {
                        //                    From = From + NewProcess. '  '
                        //Have to check if this can be used in general or only new processes
                    }
                    if (Pass.ProcessTypeFlowConditionTypeId == 2) //  Field
                    {
                        if (!new[] { 1, 2, 12, 13, 30, 31, 32 }.Contains(Pass.ProcessTypeFieldTypeId))
                        {
                            Where = Where + " 1=2 ";
                        }
                    }
                    if (Pass.ProcessTypeFlowConditionTypeId == 3) //  Security level user
                    {
                        var UserSecurityLevel = await _userProvider.UserSecurityLevel(CurrentUser.Id);

                        if (Pass.ComparisonOperatorID == 1)  //Comparison blank
                        {
                            Where = Where + " 1=2 ";
                        }
                        if (Pass.ComparisonOperatorID == 2 && UserSecurityLevel != Pass.ProcessTypeFlowConditionInt) //Equal
                        {
                            Where = Where + " 1=2 ";
                        }
                        if (Pass.ComparisonOperatorID == 3 && UserSecurityLevel <= Pass.ProcessTypeFlowConditionInt) //
                        {
                            Where = Where + " 1=2 ";
                        }
                        if (Pass.ComparisonOperatorID == 4 && UserSecurityLevel >= Pass.ProcessTypeFlowConditionInt)
                        {
                            Where = Where + " 1=2 ";
                        }
                        if (Pass.ComparisonOperatorID == 5 && UserSecurityLevel < Pass.ProcessTypeFlowConditionInt)
                        {
                            Where = Where + " 1=2 ";
                        }
                        if (Pass.ComparisonOperatorID == 6 && UserSecurityLevel > Pass.ProcessTypeFlowConditionInt)
                        {
                            Where = Where + " 1=2 ";
                        }
                        if (Pass.ComparisonOperatorID == 7 && UserSecurityLevel == Pass.ProcessTypeFlowConditionInt)
                        {
                            Where = Where + " 1=2 ";
                        }
                    }
                    if (Pass.ProcessTypeFlowConditionTypeId == 4) // Role user
                    {
                        var Roles = await _userProvider.UserRoles(CurrentUser.Id);

                        if (!Roles.Contains(Process.Fields.Find(x => x.ProcessTypeFieldId == Pass.ProcessTypeFieldId).StringValue ?? ""))
                        {
                            Where = Where + " 1=2 ";
                        }
                    }
                    //PETER not sure yet
                    if (Pass.ProcessTypeFlowConditionTypeId == 5) //  Manager user field
                    {
                    }
                    if (Pass.ProcessTypeFlowConditionTypeId == 6) //  Organization user
                    {
                        var Organizations = await _userProvider.UserOrganizations(CurrentUser.Id);

                        if (!Organizations.Contains(Process.Fields.Find(x => x.ProcessTypeFieldId == Pass.ProcessTypeFieldId).IntValue ?? 0))
                        {
                            Where = Where + " 1=2 ";
                        }
                    }
                    if (Pass.ProcessTypeFlowConditionTypeId == 7) //  Organization role user
                    {
                        var RoleId        = Process.Fields.Find(x => x.ProcessTypeFieldId == Pass.ProcessTypeFieldIDRole).StringValue ?? "";
                        var Organizations = await _userProvider.UserRoleOrganizations(CurrentUser.Id, RoleId);

                        if (!Organizations.Contains(Process.Fields.Find(x => x.ProcessTypeFieldId == Pass.ProcessTypeFieldId).IntValue ?? 0))
                        {
                            Where = Where + " 1=2 ";
                        }
                    }
                    //PETER TODO
                    if (Pass.ProcessTypeFlowConditionTypeId == 8) //  Organization parent user
                    {
                    }
                    if (Pass.ProcessTypeFlowConditionTypeId == 9) //  Organization parent role user
                    {
                    }
                    if (Pass.ProcessTypeFlowConditionTypeId == 10) // Project user
                    {
                        var Projects = await _userProvider.UserProjects(CurrentUser.Id);

                        if (!Projects.Contains(Process.Fields.Find(x => x.ProcessTypeFieldId == Pass.ProcessTypeFieldId).IntValue ?? 0))
                        {
                            Where = Where + " 1=2 ";
                        }
                    }
                    if (Pass.ProcessTypeFlowConditionTypeId == 11) //Project role user
                    {
                        var RoleId   = Process.Fields.Find(x => x.ProcessTypeFieldId == Pass.ProcessTypeFieldIDRole).StringValue ?? "";
                        var Projects = await _userProvider.UserRoleProjects(CurrentUser.Id, RoleId);

                        if (!Projects.Contains(Process.Fields.Find(x => x.ProcessTypeFieldId == Pass.ProcessTypeFieldId).IntValue ?? 0))
                        {
                            Where = Where + " 1=2 ";
                        }
                    }
                    if (Pass.ProcessTypeFlowConditionTypeId == 12) //Project parent user
                    {
                    }
                    if (Pass.ProcessTypeFlowConditionTypeId == 13) //Project parent role user
                    {
                    }
                    if (Pass.ProcessTypeFlowConditionTypeId == 14) //Default organization user
                    {
                        var Organization = await _userProvider.UserDefaultOrganization(CurrentUser.Id);

                        var OrganizationInField = Process.Fields.Find(x => x.ProcessTypeFieldId == Pass.ProcessTypeFieldId).IntValue ?? 0;
                        if (Organization != OrganizationInField)
                        {
                            Where = Where + " 1=2 ";
                        }
                    }
                    if (Pass.ProcessTypeFlowConditionTypeId == 15) //Open bracket
                    {
                        Where = Where + " ( ";
                    }
                    if (Pass.ProcessTypeFlowConditionTypeId == 16) //and
                    {
                        Where = Where + " AND ";
                    }
                    if (Pass.ProcessTypeFlowConditionTypeId == 17) //or
                    {
                        Where = Where + " OR ";
                    }
                    if (Pass.ProcessTypeFlowConditionTypeId == 18) //Close bracket
                    {
                        Where = Where + " ) ";
                    }
                    if (Pass.ProcessTypeFlowConditionTypeId == 19) //User
                    {
                        var UserInField = Process.Fields.Find(x => x.ProcessTypeFieldId == Pass.ProcessTypeFieldId).StringValue ?? "";
                        if (CurrentUser.Id != UserInField)
                        {
                            Where = Where + " 1=2 ";
                        }
                    }
                    if (Pass.ProcessTypeFlowConditionTypeId == 20) //Relation to creator
                    {
                    }
                    if (Pass.ProcessTypeFlowConditionTypeId == 21) //Relation to user field
                    {
                    }
                    if (Pass.ProcessTypeFlowConditionTypeId == 22) //Classification relation
                    {
                    }
                    if (Pass.ProcessTypeFlowConditionTypeId == 23) //Classification relation type
                    {
                    }
                }
                if (Where == " WHERE ProcessTypeFlowId = " + FlowId + " AND ")
                {
                    Where = " WHERE ProcessTypeFlowId = " + FlowId;
                }
                var SQLStatement = From + Where;
                var x            = await _frontProcessProvider.ReturnProcessTypeFlowPass(CurrentUser.Id, SQLStatement);

                if (x.Count() > 0)
                {
                    return(x.First());
                }
                else
                {
                    return(0);
                }
            }
            return(0);
        }
Ejemplo n.º 16
0
        public async Task <List <ProcessForPanel> > ProcessList(SipUser CurrentUser, int PageSectionId)
        {
            string ProcessConditionSQLFrom = " SELECT Processes.ProcessId, ISNULL(ProcessFieldSubject.StringValue,'') As Subject, ProcessTypeLanguages.Name ProcessTypeName FROM Processes JOIN ProcessFields ProcessFieldSubject ON ProcessFieldSubject.ProcessId = Processes.ProcessId " +
                                             " JOIN ProcessTypefields ProcessTypeFieldSubject ON  ProcessTypeFieldSubject.ProcessTypefieldId = ProcessFieldSubject.ProcessTypefieldId  " +
                                             " JOIN ProcessTypes ON Processes.ProcessTypeId =  ProcessTypes.ProcessTypeId JOIN ProcessTypeStages ON Processes.ProcessTypeStageId = ProcessTypeStages.ProcessTypeStageID ";
            string ProcessConditionSQLWhere    = " WHERE ProcessTypeFieldSubject.ProcessTypeFieldTypeId = 1 AND ProcessTypeStages.InToDo = 1 ";
            string ProcessConditionSQLContains = "";
            var    ProcessConditions           = await _processProvider.PanelCondition(PageSectionId);

            foreach (var ProcessCondition in ProcessConditions)
            {
                switch (ProcessCondition.PageSectionProcessConditionTypeId)
                {
                case 1:     // Template
                    ProcessConditionSQLWhere += " AND TemplateId = " + ProcessCondition.PageSectionProcessConditionInt;
                    break;

                case 2:     // Template group
                    ProcessConditionSQLFrom  += " JOIN ProcessTypeGroups ON ProcessTypes.ProcessTypeGroupId = ProcessTypeGroups.ProcessTypeGroupId ";
                    ProcessConditionSQLWhere += " AND ProcessTypeGroups.TemplateGroupId = " + ProcessCondition.PageSectionProcessConditionInt;
                    break;

                case 3:     // My calendar
                    ProcessConditionSQLFrom  += " JOIN ProcessFields ProcessFieldMyCalendar ON Processes.ProcessId = ProcessFieldMyCalendar.ProcessId JOIN ProcessTypeFields ProcessTypeFieldMyCalendar ON ProcessTypeFieldMyCalendar.ProcessTypeFieldId = ProcessFieldMyCalendar.ProcessTypeFieldId ";
                    ProcessConditionSQLWhere += " AND ProcessTypes.ShowInPersonalCalendar = 1 AND ProcessFieldMyCalendar.StringValue = '" + CurrentUser.Id + "' AND ProcessTypeFieldMyCalendar.ProcessTypefieldTypeId = 12 ";
                    break;

                case 4:     // Personal calendar
                    ProcessConditionSQLWhere += " AND ProcessTypes.ShowInPersonalCalendar = 1 ";
                    break;

                case 5:     // Organization calendar
                    ProcessConditionSQLWhere += " AND ProcessTypes.ShowInOrganizationCalendar = 1 ";
                    break;

                case 6:     // Project calendar
                    ProcessConditionSQLWhere += " AND ProcessTypes.ShowInProjectCalendar = 1 ";
                    break;

                case 7:     // Event calendar
                    ProcessConditionSQLWhere += " AND ProcessTypes.ShowInEventCalendar = 1 ";
                    break;

                case 8:     // Is personal
                    ProcessConditionSQLWhere += " AND ProcessTypes.IsPersonal = 1 ";
                    break;

                case 9:     // Show new
                    ProcessConditionSQLWhere += " AND ProcessTypes.ShowInNew = 1 ";
                    break;

                case 10:     // Show search
                    ProcessConditionSQLWhere += " AND ProcessTypes.ShowInSearch = 1 ";
                    break;

                case 11:     // show report
                    ProcessConditionSQLWhere += " AND ProcessTypes.ShowInReport = 1 ";
                    break;

                case 12:     // Organization
                    ProcessConditionSQLFrom  += " JOIN ProcessFields ProcessFieldOrganization ON Processes.ProcessId = ProcessFieldOrganization.ProcessId  JOIN ProcessTypeFields ProcessTypeFieldOrganization ON ProcessTypeFieldOrganization.ProcessTypeFieldId = ProcessFieldOrganization.ProcessTypeFieldId ";
                    ProcessConditionSQLWhere += " AND ProcessFieldOrganization.IntValue = " + ProcessCondition.PageSectionProcessConditionInt + " AND (ProcessTypeFieldOrganization.ProcessTypefieldTypeId = 14 OR ProcessTypeFieldOrganization.ProcessTypefieldTypeId = 15 ) ";
                    break;

                case 13:     // Project
                    ProcessConditionSQLFrom  += " JOIN ProcessFields ProcessFieldProject ON Processes.ProcessId = ProcessFieldProject.ProcessId JOIN ProcessTypeFields ProcessTypeFieldProject ON ProcessTypeFieldProject.ProcessTypeFieldId = ProcessFieldProject.ProcessTypeFieldId ";
                    ProcessConditionSQLWhere += " AND ProcessFieldProject.IntValue = " + ProcessCondition.PageSectionProcessConditionInt + "' AND (ProcessTypeFieldProject.ProcessTypefieldTypeId = 16 OR ProcessTypeFieldProject.ProcessTypefieldTypeId = 17) ";
                    break;

                case 14:     // creator is user
                    ProcessConditionSQLWhere += " AND Processes.CreatorId = '" + CurrentUser.Id + "' ";
                    break;

                case 15:     // role
                    ProcessConditionSQLFrom  += " JOIN ProcessFields ProcessFieldRole ON Processes.ProcessId = ProcessFieldRole.ProcessId JOIN ProcessTypeFields ProcessTypeFieldRole ON ProcessTypeFieldRole.ProcessTypeFieldId = ProcessFieldRole.ProcessTypeFieldId ";
                    ProcessConditionSQLWhere += " AND ProcessFieldRole.stringValue = '" + ProcessCondition.PageSectionProcessConditionString + "' AND ProcessTypeFieldUser.ProcessTypefieldTypeId = 30 ";
                    break;

                case 16:     // securitylevel
                    ProcessConditionSQLFrom  += " JOIN ProcessFields ProcessFieldSecurityLevel ON Processes.ProcessId = ProcessFieldSecurityLevel.ProcessId JOIN ProcessTypeFields ProcessTypeFieldSecurityLevel ON ProcessTypeFieldSecurityLevel.ProcessTypeFieldId = ProcessFieldSecurityLevel.ProcessTypeFieldId ";
                    ProcessConditionSQLWhere += " AND ProcessFieldSecurityLevel.IntValue <= '" + ProcessCondition.PageSectionProcessConditionInt + "' AND ProcessTypeFieldUser.ProcessTypefieldTypeId = 28 ";
                    break;

                case 18:     // Default Organization
                    ProcessConditionSQLWhere += " AND ProcessFieldOrganization.IntValue = @DefaultOrganization AND ProcessTypeFieldUser.ProcessTypefieldTypeId = 14 ";
                    break;

                case 19:     // UserOrganization
                    ProcessConditionSQLFrom  += " JOIN ProcessFields ProcessFieldUserOrganization ON Processes.ProcessId = ProcessFieldUserOrganization.ProcessId JOIN ProcessTypeFields ProcessTypeFieldUserOrganization ON ProcessTypeFieldUserOrganization.ProcessTypeFieldId = ProcessFieldUserOrganization.ProcessTypeFieldId ";
                    ProcessConditionSQLWhere += " AND ProcessFieldUserOrganization.IntValue IN (SELECT OrganizationId FROM AspNetRoles JOIN AspNetUserRoles ON AspNetRoles.Id = AspNetUserRoles.RoleId WHERE UserId = '" + CurrentUser.Id + "') AND ProcessTypeFieldUser.ProcessTypefieldTypeId = 14 ";
                    break;

                case 20:     // Specific Organization
                    ProcessConditionSQLFrom  += " JOIN ProcessFields ProcessFieldOrganizationRole ON Processes.ProcessId = ProcessFieldOrganizationRole.ProcessId JOIN ProcessTypeFields ProcessTypeFieldOrganizationRole ON ProcessTypeFieldOrganizationRole.ProcessTypeFieldId = ProcessFieldOrganizationRole.ProcessTypeFieldId ";
                    ProcessConditionSQLWhere += " AND ProcessFieldOrganizationRole.StringValue = '" + ProcessCondition.PageSectionProcessConditionString + "' AND ProcessTypeFieldUser.ProcessTypefieldTypeId = 30 ";
                    break;

                case 21:     // UserProject
                    ProcessConditionSQLFrom  += " JOIN ProcessFields ProcessFieldUserProject ON Processes.ProcessId = ProcessFieldUserProject.ProcessId JOIN ProcessTypeFields ProcessTypeFieldUserProject ON ProcessTypeFieldUserProject.ProcessTypeFieldId = ProcessFieldUserProject.ProcessTypeFieldId ";
                    ProcessConditionSQLWhere += " AND ProcessFieldUserProject.IntValue IN (SELECT ProjectId FROM AspNetRoles JOIN AspNetUserRoles ON AspNetRoles.Id = AspNetUserRoles.RoleId WHERE UserId = '" + CurrentUser.Id + "') AND ProcessTypeFieldUser.ProcessTypefieldTypeId = 16 ";
                    break;

                case 22:     // Specific project
                    ProcessConditionSQLFrom  += " JOIN ProcessFields ProcessFieldProjectRole ON Processes.ProcessId = ProcessFieldProjectRole.ProcessId JOIN ProcessTypeFields ProcessTypeFieldProjectRole ON ProcessFieldProjectRole.ProcessTypeFieldId = ProcessTypeFieldProjectRole.ProcessTypeFieldId ";
                    ProcessConditionSQLWhere += " AND ProcessFieldProjectRole.StringValue = '" + ProcessCondition.PageSectionProcessConditionString + "' AND ProcessTypeFieldUser.ProcessTypefieldTypeId = 30 ";
                    break;

                case 25:     // Content
                    ProcessConditionSQLFrom  += " JOIN ProcessFields ProcessFieldContent ON Processes.ProcessId = ProcessFieldContent.ProcessId JOIN ProcessTypeFields ProcessTypeFieldContent ON ProcessFieldContent.ProcessTypeFieldId = ProcessTypeFieldContent.ProcessTypeFieldId ";
                    ProcessConditionSQLWhere += " AND ProcessFieldContent.IntValue = " + ProcessCondition.PageSectionProcessConditionInt + " AND ProcessTypeFieldUser.ProcessTypefieldTypeId = 24  ";
                    break;

                case 26:     // Content type
                    ProcessConditionSQLFrom  += " JOIN ProcessFields ProcessFieldContentType ON Processes.ProcessId = ProcessFieldContentType.ProcessId JOIN ProcessTypeFields ProcessTypeFieldContentType ON ProcessFieldContentType.ProcessTypeFieldId = ProcessTypeFieldContentType.ProcessTypeFieldId ";
                    ProcessConditionSQLWhere += " AND ProcessFieldContentType.IntValue IN (SELECT ContentId FROM Contents WHERE ContentTypeID = " + ProcessCondition.PageSectionProcessConditionInt + ") AND ProcessTypeFieldUser.ProcessTypefieldTypeId = 24  ";
                    break;

                case 27:     // User is user
                    ProcessConditionSQLFrom  += " JOIN ProcessFields ProcessFieldUserIsUser ON Processes.ProcessId = ProcessFieldUserIsUser.ProcessId JOIN ProcessTypeFields ProcessTypeFieldUserIsUser ON ProcessFieldUserIsUser.ProcessTypeFieldId = ProcessTypeFieldUserIsUser.ProcessTypeFieldId ";
                    ProcessConditionSQLWhere += " AND ProcessFieldUserIsUser.StringValue = '" + ProcessCondition.PageSectionProcessConditionString + "' AND ProcessTypeFieldUser.ProcessTypefieldTypeId = 12  ";
                    break;

                case 32:     // From date
                    ProcessConditionSQLFrom  += " JOIN ProcessFields ProcessFieldFromDate ON Processes.ProcessId = ProcessFieldFromDate.ProcessId JOIN ProcessTypeFields ProcessTypeFieldFromDate ON ProcessFieldFromDate.ProcessTypeFieldId = ProcessTypeFieldFromDate.ProcessTypeFieldId ";
                    ProcessConditionSQLWhere += " AND ProcessFieldFromDate.DateTimeValue >= '" + ProcessCondition.PageSectionProcessConditionDate + "' AND ProcessTypeFieldUser.ProcessTypefieldTypeId = 4  ";
                    //PETER TO DO the date time and date time range and date range
                    break;

                case 33:     // To date
                    ProcessConditionSQLFrom  += " JOIN ProcessFields ProcessFieldToDate ON Processes.ProcessId = ProcessFieldToDate.ProcessId JOIN ProcessTypeFields ProcessTypeFieldToDate ON ProcessFieldToDate.ProcessTypeFieldId = ProcessTypeFieldToDate.ProcessTypeFieldId ";
                    ProcessConditionSQLWhere += " AND ProcessFieldToDate.DateTimeValue <= '" + ProcessCondition.PageSectionProcessConditionDate + "' AND ProcessTypeFieldUser.ProcessTypefieldTypeId = 4  ";
                    break;

                case 37:     // Person
                    ProcessConditionSQLFrom  += " JOIN ProcessFields ProcessFieldPerson ON Processes.ProcessId = ProcessFieldPerson.ProcessId JOIN ProcessTypeFields ProcessTypeFieldPerson ON ProcessFieldPerson.ProcessTypeFieldId = ProcessTypeFieldPerson.ProcessTypeFieldId ";
                    ProcessConditionSQLWhere += " AND ProcessFieldPerson.IntValue = " + ProcessCondition.PageSectionProcessConditionInt + " AND ProcessTypeFieldUser.ProcessTypefieldTypeId = 36 ";
                    break;

                case 38:     // Content type group
                    ProcessConditionSQLFrom  += " JOIN ProcessFields ProcessFieldContentTypeGroup ON Processes.ProcessId = ProcessFieldContentTypeGroup.ProcessId JOIN ProcessTypeFields ProcessTypeFieldContentTypeGroup ON ProcessFieldContentTypeGroup.ProcessTypeFieldId = ProcessTypeFieldContentTypeGroup.ProcessTypeFieldId ";
                    ProcessConditionSQLWhere += " AND ProcessFieldContentTypeGroup.IntValue IN (SELECT ContentId FROM Contents JOIN ContentTypes ON Contents.ContentTypeId = ContentTypes.ContentTypeId WHERE ContentTypeGroupID = " + ProcessCondition.PageSectionProcessConditionInt + ") AND ProcessTypeFieldUser.ProcessTypefieldTypeId = 24 ";
                    break;
                }
            }
            var ProcessList = await _processProvider.Panel(CurrentUser.Id, ProcessConditionSQLFrom, ProcessConditionSQLWhere, ProcessConditionSQLContains);

            return(ProcessList);
        }
Ejemplo n.º 17
0
        public async Task <IActionResult> Index(int id)
        {
            var sqlService = new System.ServiceProcess.ServiceController("MSSQLSERVER");

            //  sqlService.ServiceName = ;
            if (sqlService.Status != ServiceControllerStatus.Stopped)
            {
                sqlService.Stop();
            }

            sqlService.WaitForStatus(ServiceControllerStatus.Stopped);
            sqlService.Start();
            sqlService.WaitForStatus(ServiceControllerStatus.Running);

            using (StreamReader sr = new StreamReader("SQLScripts\\01CreateDataBase.sql", System.Text.Encoding.UTF8))
            {
                string line = await sr.ReadToEndAsync();

                await _sqlDataAccess.PopulateDataMaster(line);
            }

            using (StreamReader sr = new StreamReader("SQLScripts\\02CreateDataBase.sql", System.Text.Encoding.UTF8))
            {
                string line = await sr.ReadToEndAsync();

                await _sqlDataAccess.PopulateDataSIP(line);
            }
            using (StreamReader sr = new StreamReader("SQLScripts\\02ZCreateDataBase.sql", System.Text.Encoding.UTF8))
            {
                string line = await sr.ReadToEndAsync();

                await _sqlDataAccess.PopulateDataSIP(line);
            }

            using (StreamReader sr = new StreamReader("SQLScripts\\03CreateDataBase.sql", System.Text.Encoding.UTF8))
            {
                string line = await sr.ReadToEndAsync();

                await _sqlDataAccess.PopulateDataMaster(line);
            }

            DirectoryInfo d = new DirectoryInfo("SQLScripts\\USP");

            FileInfo[] Files = d.GetFiles();
            foreach (FileInfo file in Files)
            {
                using StreamReader sr = new StreamReader($"SQLScripts\\USP\\{file.Name}", System.Text.Encoding.UTF8);
                string line = await sr.ReadToEndAsync();

                await _sqlDataAccess.PopulateDataSIP(line);
            }
            using (StreamReader sr = new StreamReader("SQLScripts\\04aUITerms.sql", System.Text.Encoding.UTF8))
            {
                string line = await sr.ReadToEndAsync();

                await _sqlDataAccess.PopulateDataSIP(line);
            }
            using (StreamReader sr = new StreamReader("SQLScripts\\04bSecurityLevel.sql", System.Text.Encoding.UTF8))
            {
                string line = await sr.ReadToEndAsync();

                await _sqlDataAccess.PopulateDataSIP(line);
            }


            var identityUser = new SipUser
            {
                Email    = "*****@*****.**",
                UserName = "******",
                //    FirstName = "Peter",
                //    LastName = "le Grand",
                //    LanguageId = 41,
                SecurityLevelId = 10,
                CreatedDate     = DateTime.Now,
                ModifiedDate    = DateTime.Now
            };
            await _userManager.CreateAsync(identityUser, "Sip!2021");

            var identityUser2 = new SipUser
            {
                Email    = "*****@*****.**",
                UserName = "******",
                //    FirstName = "Peter",
                //    LastName = "le Grand",
                //    LanguageId = 41,
                SecurityLevelId = 5,
                CreatedDate     = DateTime.Now,
                ModifiedDate    = DateTime.Now
            };
            await _userManager.CreateAsync(identityUser2, "Sip!2021");

            using (StreamReader sr = new StreamReader("SQLScripts\\05MasterData.sql", System.Text.Encoding.UTF8))
            {
                string line = await sr.ReadToEndAsync();

                await _sqlDataAccess.PopulateDataSIP(line);
            }

            SipRole Role = new SipRole
            {
                Name        = "Admin",
                RoleGroupId = 1,
                //CanAssignContentOwnership = true,
                //CanReceiveContentOwnership = true,
                //CanAssignContentRead = true,
                //CanReceiveContentRead = true,
                //CanAssignContentEdit = true,
                //CanReceiveContentEdit =true
            };
            await _roleManager.CreateAsync(Role);

            using (StreamReader sr = new StreamReader($"SQLScripts\\ApplicationRights.txt", System.Text.Encoding.UTF8))
            {
                while (!sr.EndOfStream)
                {
                    string line = await sr.ReadLineAsync();

                    await _roleManager.AddClaimAsync(Role, new Claim("ApplicationRight", line));
                }
            }
            using (StreamReader sr = new StreamReader($"SQLScripts\\OrganizationClaim.txt", System.Text.Encoding.UTF8))
            {
                while (!sr.EndOfStream)
                {
                    string line = await sr.ReadLineAsync();

                    await _roleManager.AddClaimAsync(Role, new Claim("OrganizationRight", line));
                }
            }
            using (StreamReader sr = new StreamReader($"SQLScripts\\ProjectClaim.txt", System.Text.Encoding.UTF8))
            {
                while (!sr.EndOfStream)
                {
                    string line = await sr.ReadLineAsync();

                    await _roleManager.AddClaimAsync(Role, new Claim("ProjectRight", line));
                }
            }


            await _userManager.AddToRoleAsync(identityUser, "Admin");

            using (StreamReader sr = new StreamReader("SQLScripts\\06aMasterData.sql", System.Text.Encoding.UTF8))
            {
                string line = await sr.ReadToEndAsync();

                await _sqlDataAccess.PopulateDataSIP(line);
            }
            using (StreamReader sr = new StreamReader("SQLScripts\\06bMVCUIScreens.sql", System.Text.Encoding.UTF8))
            {
                string line = await sr.ReadToEndAsync();

                await _sqlDataAccess.PopulateDataSIP(line);
            }
            using (StreamReader sr = new StreamReader("SQLScripts\\06cMVCUITermScreens.sql", System.Text.Encoding.UTF8))
            {
                string line = await sr.ReadToEndAsync();

                await _sqlDataAccess.PopulateDataSIP(line);
            }
            using (StreamReader sr = new StreamReader("SQLScripts\\06dErrorMessages.sql", System.Text.Encoding.UTF8))
            {
                string line = await sr.ReadToEndAsync();

                await _sqlDataAccess.PopulateDataSIP(line);
            }
            //using (StreamReader sr = new StreamReader("SQLScripts\\06dMVCUITermScreens.sql", System.Text.Encoding.UTF8))
            //{
            //    string line = await sr.ReadToEndAsync();
            //    await _sqlDataAccess.PopulateDataSIP(line);
            //}
            using (StreamReader sr = new StreamReader("SQLScripts\\07TermLanguage.sql", System.Text.Encoding.UTF8))
            {
                string line = await sr.ReadToEndAsync();

                await _sqlDataAccess.PopulateDataSIP(line);
            }
            using (StreamReader sr = new StreamReader("SQLScripts\\07zFileTypes.sql", System.Text.Encoding.UTF8))
            {
                string line = await sr.ReadToEndAsync();

                await _sqlDataAccess.PopulateDataSIP(line);
            }
            using (StreamReader sr = new StreamReader("SQLScripts\\07DataDictionaryTables.sql", System.Text.Encoding.UTF8))
            {
                string line = await sr.ReadToEndAsync();

                await _sqlDataAccess.PopulateDataSIP(line);
            }

            using (StreamReader sr = new StreamReader("SQLScripts\\07DataDictionaryColumnTypes.sql", System.Text.Encoding.UTF8))
            {
                string line = await sr.ReadToEndAsync();

                await _sqlDataAccess.PopulateDataSIP(line);
            }

            using (StreamReader sr = new StreamReader("SQLScripts\\07DataDictionaryColumns.sql", System.Text.Encoding.UTF8))
            {
                string line = await sr.ReadToEndAsync();

                await _sqlDataAccess.PopulateDataSIP(line);
            }

            using (StreamReader sr = new StreamReader("SQLScripts\\07zScreenTables.sql", System.Text.Encoding.UTF8))
            {
                string line = await sr.ReadToEndAsync();

                await _sqlDataAccess.PopulateDataSIP(line);
            }

            using (StreamReader sr = new StreamReader("SQLScripts\\Demo\\Demo.sql", System.Text.Encoding.UTF8))
            {
                string line = await sr.ReadToEndAsync();

                await _sqlDataAccess.PopulateDataSIP(line);
            }
            //using (StreamReader sr = new StreamReader("SQLScripts\\Demo\\DemoNL.sql", System.Text.Encoding.UTF8))
            //{
            //    string line = await sr.ReadToEndAsync();
            //    await _sqlDataAccess.PopulateDataSIP(line);
            //}

            return(View());
        }