Exemplo n.º 1
0
        public string DoMigration(FilterTaskParamModel param)
        {
            if (param != null && param.ModuleIds != null && param.ModuleIds.Count > 0 && !string.IsNullOrEmpty(param.DepartmentId))
            {
                // Employee list + Modules
                BindGlobalData();

                var moduleNames  = Modules.Where(m => param.ModuleIds.Contains(m.Key)).Select(m => m.Value).ToList();
                var departmentId = Convert.ToInt32(param.DepartmentId);

                var isOverrideData         = param.HasOverwriteOldData == "1" ? true : false;
                var duplicatedEmployeeInfo = MigrateTask(isOverrideData, moduleNames, departmentId);
                if (!string.IsNullOrEmpty(duplicatedEmployeeInfo))
                {
                    return(duplicatedEmployeeInfo);
                }

                if (param.HasIncludeDelegation == "1")
                {
                    MigrateDelegation(isOverrideData, moduleNames, departmentId);
                }
            }

            return(string.Empty);
        }
Exemplo n.º 2
0
        public string DoDelete(FilterTaskParamModel param)
        {
            if (param != null)
            {
                var departmentId = string.IsNullOrEmpty(param.DepartmentId) ? 0 : Convert.ToInt32(param.DepartmentId);
                var moduleIds    = param.ModuleIds;
                DeleteOldData(TO_DO_LIST_NAME, moduleIds, departmentId);
                DeleteOldData(DONE_LIST_NAME, moduleIds, departmentId);
            }

            return(string.Empty);
        }
Exemplo n.º 3
0
        public IEnumerable <FilterTaskModel> GetAllTasks(FilterTaskParamModel param)
        {
            List <FilterTaskModel> result = new List <FilterTaskModel>();

            using (SPSite site = new SPSite(_webUrl))
            {
                using (SPWeb web = site.OpenWeb())
                {
                    var query = $@"<Where>
                                        <And>
                                            <Eq>
                                                <FieldRef Name='DataSourceID' />
                                                <Value Type='Number'>{1}</Value>
                                            </Eq>
                                            <Eq>
                                                <FieldRef Name='DepartmentEN' LookupId='TRUE'/>
                                                <Value Type='Lookup'>{param.DepartmentId}</Value>
                                            </Eq>
                                        </And>
                                </Where>";

                    if (param.ModuleIds != null && param.ModuleIds.Any())
                    {
                        StringBuilder sbItem = new StringBuilder();
                        foreach (var moduleId in param.ModuleIds)
                        {
                            sbItem.Append($@"<Value Type='Number'>{moduleId}</Value>");
                        }

                        query = $@"<Where>
                                        <And>
                                            <And>
                                                <Eq>
                                                    <FieldRef Name='DataSourceID' />
                                                    <Value Type='Number'>{1}</Value>
                                                </Eq>
                                                <Eq>
                                                    <FieldRef Name='DepartmentEN' LookupId='TRUE'/>
                                                    <Value Type='Lookup'>{param.DepartmentId}</Value>
                                                </Eq>
                                            </And>
                                            <In>
                                                <FieldRef Name='ModuleNameEN' LookupId='TRUE'/>
                                                <Values>
                                                    {sbItem.ToString()}
                                                </Values>                        
                                            </In>
                                        </And>
                                    
                                </Where>";
                    }

                    var spQuery = new SPQuery
                    {
                        Query          = query,
                        ViewAttributes = "Scope=\"RecursiveAll\""
                    };

                    // TODO list
                    SPList toDoList           = web.GetList($"{web.Url}/Lists/{TO_DO_LIST_NAME}");
                    var    toDoItemCollection = toDoList.GetItems(spQuery);
                    if (toDoItemCollection != null && toDoItemCollection.Count > 0)
                    {
                        var inProgressStatusId = 1; // In-Progress
                        result.AddRange(CreateFilterTaskModel(toDoItemCollection, inProgressStatusId));
                    }

                    // APPROVED list
                    SPList doneList = web.GetList($"{web.Url}/Lists/{DONE_LIST_NAME}");

                    var doneItemCollection = doneList.GetItems(spQuery);
                    if (doneItemCollection != null && doneItemCollection.Count > 0)
                    {
                        var approvedStatusId = 3; // Approved
                        result.AddRange(CreateFilterTaskModel(doneItemCollection, approvedStatusId));
                    }
                }
            }

            return(result);
        }