public async Task <IActionResult> Post(List <IFormFile> files)
        {
            long size = files.Sum(f => f.Length);

            // full path to file in temp location
            var filePath = Path.GetTempFileName();
            var activies = _activityService.GetFullList(x => x.IsPublish, x => x.IsPublish, OrderingType.Descending).ToList();

            if (activies.Count < 1)
            {
                base.SetMessager(MessageType.danger, "请先完善活动主题");
                return(RedirectToAction("Index", "Activity"));
            }
            List <Schedule> list = new List <Schedule>();

            try
            {
                foreach (var formFile in files)
                {
                    if (formFile.Length > 0)
                    {
                        using (var stream = formFile.OpenReadStream())
                        {
                            ExcelHelper excelHelper   = new ExcelHelper();
                            string      fileExtension = Path.GetExtension(formFile.FileName);
                            DataTable   table         = excelHelper.ExcelImport(stream, fileExtension, 0);

                            if (table != null)
                            {
                                foreach (DataRow row in table.Rows)
                                {
                                    try
                                    {
                                        //if (row.ItemArray.Length != 6)
                                        //{
                                        //    continue;
                                        //}
                                        var rownum     = row.ItemArray[0].ToString(); // 行号
                                        var num        = row["序号"].ToString();        // 序号
                                        var accountnum = string.Empty;
                                        if (row["公司ID"] == null)
                                        {
                                            continue;
                                        }
                                        accountnum = row["公司ID"].ToString();
                                        var controlId = string.Format("admin_{0}", accountnum.Trim());//  关联帐号

                                        if (row["曲目"] == null)
                                        {
                                            continue;
                                        }
                                        var name = row["曲目"].ToString();


                                        var comname = string.Empty;


                                        if (row["公司名称"] != null)
                                        {
                                            comname = row["公司名称"].ToString();
                                        }

                                        if (row["组别"] == null)
                                        {
                                            continue;
                                        }
                                        var scheduleName = row["组别"].ToString();
                                        if (string.IsNullOrEmpty(scheduleName))
                                        {
                                            continue;
                                        }
                                        CompetitionProgram_EditVD cev = new CompetitionProgram_EditVD();
                                        ///获取节目类别
                                        var cate = cev.CateList.FirstOrDefault(x => x.Name.Equals(scheduleName));
                                        if (cate == null)
                                        {
                                            continue;
                                        }
                                        var cateId = cate.Id;

                                        //获取指定节目
                                        var result = _competitionProgramService.GetObject(x => name.Equals(x.Name));

                                        var schedule = _scheduleService.GetObject(x => scheduleName.Equals(x.Name));

                                        if (schedule == null)
                                        {
                                            continue;
                                        }
                                        CompetitionProgram competitionProgram = null;
                                        if (result == null)
                                        {
                                            competitionProgram = new CompetitionProgram()
                                            {
                                                Id          = Guid.NewGuid().ToString("N"),
                                                Name        = name,
                                                Company     = comname,
                                                Desc        = string.Empty,
                                                Flag        = false,
                                                ControlId   = controlId,
                                                ScheduleId  = schedule.Id,
                                                BdImgUrl    = string.Empty,
                                                BdImgUrlPwd = string.Empty,

                                                ImgUrl      = string.Empty,
                                                Cate        = cateId,
                                                UpdateTime  = DateTime.Now,
                                                UpdatorId   = UserName,
                                                UpdatorName = AdminUser == null ? "" : AdminUser.RealName,
                                                CreatorName = AdminUser == null ? "" : AdminUser.RealName,
                                                SignNum     = string.Empty,
                                                Status      = 0,
                                                Remark      = string.Empty,
                                                CreateTime  = DateTime.Now,
                                                CreatorId   = UserName,
                                            };
                                        }
                                        else
                                        {
                                            competitionProgram             = result;
                                            competitionProgram.Name        = name;
                                            competitionProgram.Desc        = string.Empty;
                                            competitionProgram.ImgUrl      = string.Empty;
                                            competitionProgram.Cate        = cateId;
                                            competitionProgram.Remark      = string.Empty;
                                            competitionProgram.ScheduleId  = schedule.Id; competitionProgram.BdImgUrl = string.Empty;
                                            competitionProgram.BdImgUrlPwd = string.Empty;
                                            competitionProgram.Company     = comname;
                                            competitionProgram.ControlId   = controlId;
                                            competitionProgram.UpdatorId   = UserName;
                                            competitionProgram.UpdatorName = AdminUser == null ? "" : AdminUser.RealName;
                                            competitionProgram.UpdateTime  = DateTime.Now;
                                            competitionProgram.SignNum     = string.Empty;
                                            competitionProgram.Status      = 0;
                                            competitionProgram.UpdateTime  = DateTime.Now;
                                            competitionProgram.UpdatorId   = UserName;
                                            competitionProgram.UpdatorName = AdminUser == null ? "" : AdminUser.RealName;
                                        }



                                        await TryUpdateModelAsync(competitionProgram, "",
                                                                  v => v.Name
                                                                  , v => v.Desc
                                                                  , v => v.ImgUrl
                                                                  , v => v.Cate
                                                                  , v => v.Remark
                                                                  , v => v.Desc
                                                                  , v => v.BdImgUrl
                                                                  , v => v.BdImgUrlPwd
                                                                  , v => v.Company
                                                                  , v => v.ControlId
                                                                  , v => v.UpdatorId
                                                                  , v => v.UpdatorName
                                                                  , v => v.UpdateTime
                                                                  , v => v.SignNum
                                                                  , v => v.Status
                                                                  , v => v.UpdateTime
                                                                  , v => v.UpdatorId
                                                                  , v => v.UpdatorName);


                                        _competitionProgramService.SaveObject(competitionProgram);
                                    }
                                    catch (Exception ex)
                                    {
                                        continue;
                                    }
                                }
                            }
                            await Task.Delay(10);

                            // await formFile.CopyToAsync(stream);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                var error = ex.Message;
            }


            // process uploaded files
            // Don't rely on or trust the FileName property without validation.

            return(Ok(new { count = files.Count, size, filePath }));
        }
        private async Task <ProjectMember> SaveObj(CompetitionProgram_EditVD model, CompetitionProgram competitionProgram, ProjectMember pm)
        {
            try
            {
                await TryUpdateModelAsync(competitionProgram, "",
                                          v => v.Name
                                          , v => v.Desc
                                          , v => v.ImgUrl
                                          , v => v.Cate
                                          , v => v.Remark
                                          , v => v.Desc
                                          , v => v.BdImgUrl
                                          , v => v.BdImgUrlPwd
                                          , v => v.Company
                                          , v => v.ControlId
                                          , v => v.UpdatorId
                                          , v => v.UpdatorName
                                          , v => v.UpdateTime
                                          , v => v.SignNum
                                          , v => v.Status
                                          , v => v.UpdateTime
                                          , v => v.UpdatorId
                                          , v => v.UpdatorName);


                _competitionProgramService.SaveObject(competitionProgram);
                if (pm != null)
                {
                    _projectMemberService.SaveObject(pm);
                }
                else
                {
                    if (!string.IsNullOrEmpty(model.LeaderName))
                    {
                        pm = new ProjectMember
                        {
                            Id         = Guid.NewGuid().ToString("N"),
                            Company    = model.LeaderCom,
                            Duty       = model.LeaderDuty,
                            Email      = string.Empty,
                            CreateTime = DateTime.Now,
                            Flag       = false,
                            Gender     = 0,
                            Name       = model.LeaderName,
                            Nation     = model.LeaderNation,
                            ProjectId  = competitionProgram.Id,
                            Phone      = model.LeaderPhone,
                            UpdateTime = DateTime.Now,
                            IsLeader   = true,
                            IdCard     = model.LeaderCard,
                            Sort       = 1,
                        };
                        _projectMemberService.SaveObject(pm);
                    }
                }

                //base.SetMessager(MessageType.success, $"{(isEdit ? "修改" : "新增")}成功!");
                //return RedirectToAction("Index");
            }
            catch (Exception ex)
            {
                //base.SetMessager(MessageType.danger, $"{(isEdit ? "修改" : "新增")}失败!" + ex.Message);
                //return RedirectToAction("Index");
            }

            return(pm);
        }
Exemplo n.º 3
0
        public ActionResult Index(string kw = null, string ProjectId = "", int pageIndex = 1)
        {
            var activies = _activityService.GetFullList(x => x.IsPublish, x => x.IsPublish, OrderingType.Descending).ToList();

            if (activies.Count < 1)
            {
                base.SetMessager(MessageType.danger, "请先完善活动主题");
                return(RedirectToAction("Index"));
            }
            var curactivity = activies.Select(x => x.Id).ToList();

            // List<Schedule> list = new List<Schedule>();

            var clist = _scheduleService.GetFullList(x => curactivity.Contains(x.ActivityId), x => x.Sort, OrderingType.Ascending).ToList().Select(x => x.Id).ToList();

            var modellist = _competitionProgramService.GetFullList(x => clist.Contains(x.ScheduleId), x => x.CreateTime, OrderingType.Descending).Select(x => x).ToList();


            var seh = new SenparcExpressionHelper <ProjectMember>();

            seh.ValueCompare.AndAlso(true, z => !z.Flag)
            .AndAlso(!kw.IsNullOrEmpty(), z => z.Name.Contains(kw) || z.Company.Contains(kw) || z.Duty.Contains(kw) || z.Phone.Contains(kw) || z.Nation.Contains(kw));

            if (!string.IsNullOrEmpty(ProjectId))
            {
                seh.ValueCompare.AndAlso(true, z => z.ProjectId == ProjectId);
            }

            var where = seh.BuildWhereExpression();


            //var seh = new SenparcExpressionHelper<ProjectMember>();
            //seh.ValueCompare.AndAlso(true, z => !z.Flag)
            //    .AndAlso(!kw.IsNullOrEmpty(), z => z.Name.Contains(kw) || z.Company.Contains(kw) || z.Duty.Contains(kw) || z.Phone.Contains(kw) || z.Nation.Contains(kw));
            //var where = seh.BuildWhereExpression();

            var modelList = _projectMemberService.GetObjectList(pageIndex, 10000, where, z => z.Id, OrderingType.Descending);
            List <ProjectMember_EditVD> list = new List <ProjectMember_EditVD>();

            modelList.ForEach(x =>
            {
                var leader = new CompetitionProgram();

                if (!string.IsNullOrEmpty(x.ProjectId))
                {
                    var cleader = _competitionProgramService.GetObject(xp => xp.Id == x.ProjectId);

                    if (cleader != null)
                    {
                        leader = cleader;
                    }
                }

                var strcateName = string.Empty;

                if (leader.Schedule == null)
                {
                    leader.Schedule = _scheduleService.GetObject(s => s.Id == leader.ScheduleId);
                }

                list.Add(new ProjectMember_EditVD
                {
                    ProjectId          = x.ProjectId,
                    Name               = x.Name,
                    Nation             = x.Nation,
                    IdCard             = x.IdCard,
                    Company            = x.Company,
                    Duty               = x.Duty,
                    Gender             = x.Gender,
                    Id                 = x.Id,
                    Phone              = x.Phone,
                    CreateTime         = x.CreateTime,
                    CompetitionProgram = leader,
                    Email              = x.Email,
                    IsLeader           = x.IsLeader,
                    HeadImgUrl         = x.HeadImgUrl,
                    IdCardImgUrl       = x.IdCardImgUrl,
                    UserName           = x.Phone
                });
            });

            var vd = new ProjectIndex_EditVD()
            {
                CompetitionProgramList = new PagedList <ProjectMember_EditVD>(list, pageIndex, modelList.PageCount, modelList.TotalCount, modelList.SkipCount),
                kw        = kw,
                ProjectId = ProjectId,
                CpList    = modellist
            };

            return(View(vd));
        }
        public async Task <IActionResult> Edit(CompetitionProgram_EditVD model)
        {
            bool isEdit = !string.IsNullOrEmpty(model.Id);

            bool iseditManger = false;

            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            CompetitionProgram competitionProgram = null;
            //  CompetitionProgram
            ProjectMember pm = null;

            if (isEdit)
            {
                competitionProgram = _competitionProgramService.GetObject(z => z.Id == model.Id);
                if (competitionProgram == null)
                {
                    base.SetMessager(MessageType.danger, "信息不存在!");
                    return(RedirectToAction("Index"));
                }

                pm = _projectMemberService.GetObject(x => x.ProjectId == competitionProgram.Id);

                if (pm != null)
                {
                    // pm.Id = Guid.NewGuid().ToString("N");
                    pm.Company = model.LeaderCom;
                    pm.Duty    = model.LeaderDuty;
                    pm.Email   = model.LeaderEmail;
                    //pm.CreateTime = DateTime.Now;
                    pm.Flag       = false;
                    pm.Gender     = 0;
                    pm.Name       = model.LeaderName;
                    pm.Nation     = model.LeaderNation;
                    pm.ProjectId  = competitionProgram.Id;
                    pm.Phone      = model.LeaderPhone;
                    pm.UpdateTime = DateTime.Now;
                    pm.IsLeader   = true;
                    pm.IdCard     = model.LeaderCard;
                    pm.Sort       = 1;
                }

                competitionProgram.Name        = model.Name;
                competitionProgram.Desc        = model.Desc;
                competitionProgram.ImgUrl      = model.ImgUrl;
                competitionProgram.Cate        = model.Cate;
                competitionProgram.Remark      = model.Remark;
                competitionProgram.ScheduleId  = model.ProjectId;
                competitionProgram.Desc        = model.Desc;
                competitionProgram.BdImgUrl    = model.BdImgUrl;
                competitionProgram.BdImgUrlPwd = model.BdImgUrlPwd;
                competitionProgram.Company     = model.Company;
                competitionProgram.ControlId   = model.ControlId;
                competitionProgram.UpdatorId   = UserName;
                competitionProgram.UpdatorName = AdminUser == null ? "" : AdminUser.RealName;
                competitionProgram.UpdateTime  = DateTime.Now;
                competitionProgram.SignNum     = model.SignNum;
                competitionProgram.Status      = model.Status;
                competitionProgram.UpdateTime  = DateTime.Now;
                competitionProgram.UpdatorId   = UserName;
                competitionProgram.UpdatorName = AdminUser == null ? "" : AdminUser.RealName;
            }
            else
            {
                competitionProgram = new CompetitionProgram()
                {
                    Id          = Guid.NewGuid().ToString("N"),
                    Name        = model.Name,
                    Company     = model.Company,
                    Desc        = model.Desc,
                    Flag        = false,
                    ControlId   = model.ControlId,
                    ScheduleId  = model.ProjectId,
                    BdImgUrl    = model.BdImgUrl,
                    BdImgUrlPwd = model.BdImgUrlPwd,
                    ImgUrl      = model.ImgUrl,
                    Cate        = model.Cate,
                    UpdateTime  = DateTime.Now,
                    UpdatorId   = UserName,
                    UpdatorName = AdminUser == null ? "" : AdminUser.RealName,
                    CreatorName = AdminUser == null ? "" : AdminUser.RealName,
                    SignNum     = model.SignNum,
                    Status      = model.Status,
                    Remark      = model.Remark,
                    CreateTime  = DateTime.Now,
                    CreatorId   = UserName,
                };
            }
            try
            {
                await TryUpdateModelAsync(competitionProgram, "",
                                          v => v.Name
                                          , v => v.Desc
                                          , v => v.ImgUrl
                                          , v => v.Cate
                                          , v => v.Remark
                                          , v => v.Desc
                                          , v => v.BdImgUrl
                                          , v => v.BdImgUrlPwd
                                          , v => v.Company
                                          , v => v.ControlId
                                          , v => v.UpdatorId
                                          , v => v.UpdatorName
                                          , v => v.UpdateTime
                                          , v => v.SignNum
                                          , v => v.Status
                                          , v => v.UpdateTime
                                          , v => v.UpdatorId
                                          , v => v.UpdatorName);


                _competitionProgramService.SaveObject(competitionProgram);
                if (pm != null)
                {
                    _projectMemberService.SaveObject(pm);
                }
                else
                {
                    if (!string.IsNullOrEmpty(model.LeaderName))
                    {
                        pm = new ProjectMember
                        {
                            Id         = Guid.NewGuid().ToString("N"),
                            Company    = model.LeaderCom,
                            Duty       = model.LeaderDuty,
                            Email      = string.Empty,
                            CreateTime = DateTime.Now,
                            Flag       = false,
                            Gender     = 0,
                            Name       = model.LeaderName,
                            Nation     = model.LeaderNation,
                            ProjectId  = competitionProgram.Id,
                            Phone      = model.LeaderPhone,
                            UpdateTime = DateTime.Now,
                            IsLeader   = true,
                            IdCard     = model.LeaderCard,
                            Sort       = 1,
                        };
                        _projectMemberService.SaveObject(pm);
                    }
                }

                base.SetMessager(MessageType.success, $"{(isEdit ? "修改" : "新增")}成功!");
                return(RedirectToAction("Index"));
            }
            catch (Exception ex)
            {
                base.SetMessager(MessageType.danger, $"{(isEdit ? "修改" : "新增")}失败!" + ex.Message);
                return(RedirectToAction("Index"));
            }
        }
Exemplo n.º 5
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public ActionResult ExportMember()
        {
            var activies = _activityService.GetFullList(x => x.IsPublish, x => x.IsPublish, OrderingType.Descending).ToList();

            if (activies.Count < 1)
            {
                base.SetMessager(MessageType.danger, "请先完善活动主题");
                return(RedirectToAction("Index"));
            }
            var curactivity = activies.Select(x => x.Id).ToList();

            // List<Schedule> list = new List<Schedule>();

            var clist = _scheduleService.GetFullList(x => curactivity.Contains(x.ActivityId), x => x.Sort, OrderingType.Ascending).ToList().Select(x => x.Id).ToList();

            var modellist = _competitionProgramService.GetFullList(x => clist.Contains(x.ScheduleId), x => x.CreateTime, OrderingType.Descending).Select(x => x).ToList();


            var seh = new SenparcExpressionHelper <ProjectMember>();

            //seh.ValueCompare.AndAlso(true, z => !z.Flag)
            //    .AndAlso(!kw.IsNullOrEmpty(), z => z.Name.Contains(kw) || z.Company.Contains(kw) || z.Duty.Contains(kw) || z.Phone.Contains(kw) || z.Nation.Contains(kw));

            //if (!string.IsNullOrEmpty(ProjectId))
            //{
            //    seh.ValueCompare.AndAlso(true, z => z.ProjectId == ProjectId);
            //}

            var where = seh.BuildWhereExpression();


            //var seh = new SenparcExpressionHelper<ProjectMember>();
            //seh.ValueCompare.AndAlso(true, z => !z.Flag)
            //    .AndAlso(!kw.IsNullOrEmpty(), z => z.Name.Contains(kw) || z.Company.Contains(kw) || z.Duty.Contains(kw) || z.Phone.Contains(kw) || z.Nation.Contains(kw));
            //var where = seh.BuildWhereExpression();

            var modelList = _projectMemberService.GetObjectList(1, 20000, where, z => z.Id, OrderingType.Descending);
            List <ProjectMember_EditVD> list = new List <ProjectMember_EditVD>();

            modelList.ForEach(x =>
            {
                var leader = new CompetitionProgram();

                if (!string.IsNullOrEmpty(x.ProjectId))
                {
                    var cleader = _competitionProgramService.GetObject(xp => xp.Id == x.ProjectId);

                    if (cleader != null)
                    {
                        leader = cleader;
                    }
                }

                var strcateName = string.Empty;

                if (leader.Schedule == null)
                {
                    leader.Schedule = _scheduleService.GetObject(s => s.Id == leader.ScheduleId);
                }

                list.Add(new ProjectMember_EditVD
                {
                    ProjectId          = x.ProjectId,
                    Name               = x.Name,
                    Nation             = x.Nation,
                    IdCard             = x.IdCard,
                    Company            = x.Company,
                    Duty               = x.Duty,
                    Gender             = x.Gender,
                    Id                 = x.Id,
                    Phone              = x.Phone,
                    CreateTime         = x.CreateTime,
                    CompetitionProgram = leader,
                    Email              = x.Email,
                    IsLeader           = x.IsLeader,
                    HeadImgUrl         = x.HeadImgUrl,
                    IdCardImgUrl       = x.IdCardImgUrl,
                    UserName           = x.Phone
                });
            });
            List <ExportProMemberTable> exportProMemberTables = new List <ExportProMemberTable>();
            var i = 1;

            list.OrderBy(x => x.ProjectId).ToList().ForEach(x =>
            {
                ExportProMemberTable rowItem = new ExportProMemberTable
                {
                    Sort        = i.ToString(),
                    CompanyId   = x.CompetitionProgram.ControlId,
                    Company     = x.CompetitionProgram.Company,
                    ContactTel  = x.Phone,
                    IdCard      = x.IdCard,
                    Name        = x.Name,
                    Nation      = x.Nation,
                    ProjectName = x.CompetitionProgram.Name,
                    ProjectType = CateManager.GetCateName(x.CompetitionProgram.Cate),
                    WorkCom     = x.Company
                };

                exportProMemberTables.Add(rowItem);
                i++;
            });


            var datatable = DataTableListUtil.ListToDt <ExportProMemberTable>(exportProMemberTables);

            ExcelHelper excelHelper = new ExcelHelper();
            ExcelConfig excelConfig = new ExcelConfig()
            {
                Title           = "参赛者列表",
                ColumnEntity    = new List <ColumnModel>(),
                IsAllSizeColumn = true,
            };
            var props = typeof(ExportProMemberTable).GetProperties();
            //   var dt = new DataTable();
            string proName = "";

            excelConfig.ColumnEntity.AddRange(props.Select(p => {
                switch (p.Name)
                {
                case "Sort":
                    proName = "序号";
                    break;

                case "CompanyId":
                    proName = "公司ID";
                    break;

                case "Company":
                    proName = "公司";
                    break;

                case "ProjectName":
                    proName = "参演项目";
                    break;

                case "ProjectType":
                    proName = "参演项目类型";
                    break;

                case "Name":
                    proName = "姓名";
                    break;

                case "WorkCom":
                    proName = "工作单位";
                    break;

                case "ContactTel":
                    proName = "联系电话";
                    break;

                case "Nation":
                    proName = "民族";
                    break;

                case "IdCard":
                    proName = "身份证号";
                    break;

                default:
                    proName = p.Name;
                    break;
                }

                return(new  ColumnModel()
                {
                    Column = p.Name,
                    ExcelColumn = proName,
                });
            }).ToArray());

            return(excelHelper.ExcelDownload(datatable, excelConfig, string.Format("{0}_参赛者表", DateTime.Now.ToString("yyyyMMddHHmm"))));

            //var vd = new ProjectIndex_EditVD()
            //{
            //    CompetitionProgramList = new PagedList<ProjectMember_EditVD>(list, pageIndex, modelList.PageCount, modelList.TotalCount, modelList.SkipCount),
            //    kw = kw,
            //    ProjectId = ProjectId,
            //    CpList = modellist
            //};
            //   return View(null);
        }