Пример #1
0
        public Tuple <bool, string> SaveWorkerRuleRule(string cuUserId, dynamic item)
        {
            bool   success = false;
            string msg = "";
            string UserId, Department, DateFrom, DateTo, Remark, UserId1, UserId2, Team;
            int    Score, Rule, Nature, Priority, WorkerRuleId;
            int?   WorkerSettingId, Grade1, Grade2, Grade3, Grade4, LevelNo, GroupID, GroupID1, TeamFilter;

            if (checkHavePermission(cuUserId, "ADMIN", "Process Worker"))
            {
                try
                {
                    UserId          = item.UserId;
                    Department      = item.Department;
                    DateFrom        = item.DateFrom;
                    DateTo          = item.DateTo;
                    Remark          = item.Remark;
                    UserId1         = item.UserId1;
                    UserId2         = item.UserId2;
                    Team            = item.Team;
                    Score           = item.Score;
                    Rule            = item.Rule;
                    Nature          = item.Nature;
                    Priority        = item.Priority;
                    WorkerRuleId    = item.WorkerRuleId;
                    WorkerSettingId = this.TryParseNullable(item.WorkerSettingId.ToString());
                    Grade1          = this.TryParseNullable(item.Grade1.ToString());
                    Grade2          = this.TryParseNullable(item.Grade2.ToString());
                    Grade3          = this.TryParseNullable(item.Grade3.ToString());
                    Grade4          = this.TryParseNullable(item.Grade4.ToString());
                    LevelNo         = this.TryParseNullable(item.LevelNo.ToString());
                    GroupID         = this.TryParseNullable(item.GroupID.ToString());
                    GroupID1        = this.TryParseNullable(item.GroupID1.ToString());
                    TeamFilter      = this.TryParseNullable(item.TeamFilter.ToString());
                    SqlParameter[] sqlp =
                    {
                        new SqlParameter("CurUserId",           cuUserId),
                        new SqlParameter("WorkerRuleId",        WorkerRuleId),
                        new SqlParameter("WorkerRuleSettingID", DBNull.Value),
                        new SqlParameter("Rule",                Rule),
                        new SqlParameter("Nature",              Nature),
                        new SqlParameter("Score",               Score),
                        new SqlParameter("UserId",              DBNull.Value),
                        new SqlParameter("LevelNo",             DBNull.Value),
                        new SqlParameter("GroupID",             DBNull.Value),
                        new SqlParameter("GroupID1",            DBNull.Value),
                        new SqlParameter("Team",                DBNull.Value),
                        new SqlParameter("TeamFilter",          DBNull.Value),
                        new SqlParameter("Grade1",              DBNull.Value),
                        new SqlParameter("Grade2",              DBNull.Value),
                        new SqlParameter("Priority",            Priority),
                        new SqlParameter("Grade3",              DBNull.Value),
                        new SqlParameter("Grade4",              DBNull.Value),
                        new SqlParameter("Department",          DBNull.Value),
                        new SqlParameter("DateFrom",            DBNull.Value),
                        new SqlParameter("DateTo",              DBNull.Value),
                        new SqlParameter("Criteria",            DBNull.Value),
                        new SqlParameter("Remark",              Remark),
                        new SqlParameter("UserId1",             DBNull.Value),
                        new SqlParameter("UserId2",             DBNull.Value)
                    };

                    if (WorkerSettingId.GetValueOrDefault(0) != 0)
                    {
                        sqlp[2].Value = WorkerSettingId;
                    }
                    if (!string.IsNullOrEmpty(UserId))
                    {
                        sqlp[6].Value = UserId;
                    }
                    if (LevelNo.GetValueOrDefault(0) != 0)
                    {
                        sqlp[7].Value = LevelNo;
                    }
                    if (GroupID.GetValueOrDefault(0) != 0)
                    {
                        sqlp[8].Value = GroupID;
                    }
                    if (GroupID1.GetValueOrDefault(0) != 0)
                    {
                        sqlp[9].Value = GroupID1;
                    }
                    if (!string.IsNullOrEmpty(Team))
                    {
                        sqlp[10].Value = Team;
                    }
                    if (TeamFilter.GetValueOrDefault(0) != 0)
                    {
                        sqlp[11].Value = TeamFilter;
                    }
                    if (Grade1.GetValueOrDefault(0) != 0)
                    {
                        sqlp[12].Value = Grade1;
                    }
                    if (Grade2.GetValueOrDefault(0) != 0)
                    {
                        sqlp[13].Value = Grade2;
                    }
                    if (Grade3.GetValueOrDefault(0) != 0)
                    {
                        sqlp[15].Value = Grade3;
                    }
                    if (Grade4.GetValueOrDefault(0) != 0)
                    {
                        sqlp[16].Value = Grade4;
                    }
                    if (!string.IsNullOrEmpty(Department))
                    {
                        sqlp[17].Value = Department;
                    }
                    if (!string.IsNullOrEmpty(DateFrom))
                    {
                        sqlp[18].Value = DateFrom;
                    }
                    if (!string.IsNullOrEmpty(DateTo))
                    {
                        sqlp[19].Value = DateTo;
                    }
                    if (!string.IsNullOrEmpty(item.Criteria.ToString()))
                    {
                        string criteria = "";
                        foreach (var i in item.Criteria)
                        {
                            if (!string.IsNullOrEmpty(criteria))
                            {
                                criteria += ';';
                            }
                            criteria += i;
                        }
                        sqlp[20].Value = criteria;
                    }
                    if (!string.IsNullOrEmpty(UserId1))
                    {
                        sqlp[22].Value = UserId1;
                    }
                    if (!string.IsNullOrEmpty(UserId2))
                    {
                        sqlp[23].Value = UserId2;
                    }

                    var WorkerRuleSettingID = Db.Database.SqlQuery <int>("exec [K2_WorkerSaveWorkerRule_Rule] @CurUserId,@WorkerRuleId,@WorkerRuleSettingID,@Rule,@Nature,@Score,@UserId,@LevelNo,@GroupID,@GroupID1,@Team,@TeamFilter,@Grade1,@Grade2,@Priority,@Grade3,@Grade4,@Department,@DateFrom,@DateTo,@Criteria,@Remark,@UserId1,@UserId2", sqlp).FirstOrDefault();
                    success = true;
                    msg     = WorkerRuleSettingID.ToString();
                }
                catch (Exception ex)
                {
                    throw ex;
                }

                return(Tuple.Create(success, msg));
            }
            else
            {
                throw new UnauthorizedAccessException();
            }
        }
Пример #2
0
        protected Tuple <byte[], string> generateExcel(dynamic stuff)
        {
            try
            {
                using (var reportViewer = new ReportViewer())
                {
                    Warning[] warnings;
                    string[]  streamids;
                    string    mimeType;
                    string    encoding;
                    string    filenameExtension;
                    string    RuleCode, UserId1, UserId2, Team, Department, DateFrom, DateTo, Criteria;
                    int       Rule, Score, Priority;
                    int?      LevelNo, GroupID, GroupID1, Grade1, Grade2, TeamFilter, Grade3, Grade4;

                    RuleCode   = stuff.RuleCode;
                    Rule       = stuff.Rule;
                    Score      = stuff.Score;
                    UserId1    = stuff.UserId1;
                    UserId2    = stuff.UserId2;
                    Team       = stuff.Team;
                    Department = stuff.Department;
                    DateFrom   = stuff.DateFrom;
                    DateTo     = stuff.DateTo;
                    Priority   = stuff.Priority;
                    Grade1     = this.TryParseNullable(stuff.Grade1.ToString());
                    Grade2     = this.TryParseNullable(stuff.Grade2.ToString());
                    Grade3     = this.TryParseNullable(stuff.Grade3.ToString());
                    Grade4     = this.TryParseNullable(stuff.Grade4.ToString());
                    LevelNo    = this.TryParseNullable(stuff.LevelNo.ToString());
                    GroupID    = this.TryParseNullable(stuff.GroupID.ToString());
                    GroupID1   = this.TryParseNullable(stuff.GroupID1.ToString());
                    TeamFilter = this.TryParseNullable(stuff.TeamFilter.ToString());
                    Criteria   = "";

                    if (!string.IsNullOrEmpty(stuff.Criteria.ToString()))
                    {
                        foreach (var i in stuff.Criteria)
                        {
                            if (!string.IsNullOrEmpty(Criteria))
                            {
                                Criteria += ';';
                            }
                            Criteria += i;
                        }
                        if (!string.IsNullOrEmpty(Criteria))
                        {
                            Criteria += ";";
                        }
                    }

                    reportViewer.ProcessingMode = ProcessingMode.Remote;
                    IReportServerCredentials irsc = new CustomReportCredentials(ConfigurationManager.AppSettings.Get("SSRSLoginUser").ToString(), ConfigurationManager.AppSettings.Get("SSRSLoginPassword").ToString());
                    reportViewer.ServerReport.ReportServerCredentials = irsc;
                    reportViewer.ServerReport.ReportServerUrl         = new Uri(ConfigurationManager.AppSettings.Get("SSRSPath").ToString());
                    reportViewer.ServerReport.ReportPath = ConfigurationManager.AppSettings.Get("SSTSFolderPath").ToString();

                    reportViewer.ServerReport.SetParameters(new ReportParameter("RuleCode", RuleCode));
                    reportViewer.ServerReport.SetParameters(new ReportParameter("Template", Rule.ToString()));
                    reportViewer.ServerReport.SetParameters(new ReportParameter("Score", Score.ToString()));
                    reportViewer.ServerReport.SetParameters(new ReportParameter("UserEmployeeID", UserId2));
                    reportViewer.ServerReport.SetParameters(new ReportParameter("UserMinGradeLevel", Grade3.ToString()));
                    reportViewer.ServerReport.SetParameters(new ReportParameter("UserMaxGradeLevel", Grade4.ToString()));
                    if (GroupID1.GetValueOrDefault(0) != 0)
                    {
                        reportViewer.ServerReport.SetParameters(new ReportParameter("UserGroupID", GroupID1.ToString()));
                    }
                    reportViewer.ServerReport.SetParameters(new ReportParameter("UserDepartment", Department));
                    reportViewer.ServerReport.SetParameters(new ReportParameter("UserTeam", Team));
                    if (TeamFilter.GetValueOrDefault(0) != 0)
                    {
                        reportViewer.ServerReport.SetParameters(new ReportParameter("UserTeamFilter", TeamFilter.ToString()));
                    }
                    reportViewer.ServerReport.SetParameters(new ReportParameter("isDefault", Priority.ToString()));
                    reportViewer.ServerReport.SetParameters(new ReportParameter("WorkerEmployeeID", UserId1));
                    reportViewer.ServerReport.SetParameters(new ReportParameter("WorkerMinGradeLevel", Grade1.ToString()));
                    reportViewer.ServerReport.SetParameters(new ReportParameter("WorkerMaxGradeLevel", Grade2.ToString()));
                    if (GroupID.GetValueOrDefault(0) != 0)
                    {
                        reportViewer.ServerReport.SetParameters(new ReportParameter("WorkerGroupID", GroupID.ToString()));
                    }
                    if (LevelNo.GetValueOrDefault(0) != 0)
                    {
                        reportViewer.ServerReport.SetParameters(new ReportParameter("WorkerOrgChartLevel", LevelNo.ToString()));
                    }
                    reportViewer.ServerReport.SetParameters(new ReportParameter("OtherCriteria", Criteria));
                    if (!string.IsNullOrEmpty(DateFrom))
                    {
                        reportViewer.ServerReport.SetParameters(new ReportParameter("StartDate", DateFrom + " 00:00:00"));
                    }
                    if (!string.IsNullOrEmpty(DateTo))
                    {
                        reportViewer.ServerReport.SetParameters(new ReportParameter("EndDate", DateTo + " 00:00:00"));
                    }

                    byte[] resultByte = reportViewer.ServerReport.Render("Excel", null, out mimeType, out encoding, out filenameExtension, out streamids, out warnings);
                    string fileName   = DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls";
                    //string saveExcel = ConfigurationManager.AppSettings.Get("SSRSSaveExcel").ToString();
                    //if (saveExcel == "1")
                    //{
                    //    using (FileStream fs = new FileStream(@ConfigurationManager.AppSettings.Get("SSRSSavePath").ToString() + fileName, FileMode.Create))
                    //    {
                    //        fs.Write(resultByte, 0, resultByte.Length);
                    //    }
                    //}

                    return(Tuple.Create(resultByte, fileName));
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }