Пример #1
0
        public async Task <KnowledgeArticle> Get(long Id)
        {
            KnowledgeArticle KnowledgeArticle = await UOW.KnowledgeArticleRepository.Get(Id);

            if (KnowledgeArticle == null)
            {
                return(null);
            }

            var Now = StaticParams.DateTimeNow;

            if (Now >= KnowledgeArticle.FromDate && (KnowledgeArticle.ToDate.HasValue == false || KnowledgeArticle.ToDate >= Now))
            {
                KnowledgeArticle.KMSStatusId = KMSStatusEnum.DOING.Id;
                KnowledgeArticle.KMSStatus   = new KMSStatus
                {
                    Id   = KMSStatusEnum.DOING.Id,
                    Code = KMSStatusEnum.DOING.Code,
                    Name = KMSStatusEnum.DOING.Name,
                };
            }
            else if (KnowledgeArticle.ToDate < Now)
            {
                KnowledgeArticle.KMSStatusId = KMSStatusEnum.EXPIRED.Id;
                KnowledgeArticle.KMSStatus   = new KMSStatus
                {
                    Id   = KMSStatusEnum.EXPIRED.Id,
                    Code = KMSStatusEnum.EXPIRED.Code,
                    Name = KMSStatusEnum.EXPIRED.Name,
                };
            }
            return(KnowledgeArticle);
        }
Пример #2
0
        public async Task <ActionResult <KnowledgeArticle_KnowledgeArticleDTO> > Delete([FromBody] KnowledgeArticle_KnowledgeArticleDTO KnowledgeArticle_KnowledgeArticleDTO)
        {
            if (UnAuthorization)
            {
                return(Forbid());
            }
            if (!ModelState.IsValid)
            {
                throw new BindException(ModelState);
            }

            if (!await HasPermission(KnowledgeArticle_KnowledgeArticleDTO.Id))
            {
                return(Forbid());
            }

            KnowledgeArticle KnowledgeArticle = ConvertDTOToEntity(KnowledgeArticle_KnowledgeArticleDTO);

            KnowledgeArticle = await KnowledgeArticleService.Delete(KnowledgeArticle);

            KnowledgeArticle_KnowledgeArticleDTO = new KnowledgeArticle_KnowledgeArticleDTO(KnowledgeArticle);
            if (KnowledgeArticle.IsValidated)
            {
                return(KnowledgeArticle_KnowledgeArticleDTO);
            }
            else
            {
                return(BadRequest(KnowledgeArticle_KnowledgeArticleDTO));
            }
        }
Пример #3
0
        /// <summary>
        /// 置顶
        /// </summary>
        /// <param name="Model"></param>
        /// <returns></returns>
        public string SetTop(KnowledgeArticle Model)
        {
            KnowledgeArticleBll bll = new KnowledgeArticleBll();

            bll.SetTop(Model);
            return(new { success = true }.GetJson());
        }
Пример #4
0
        public async Task <bool> Create(KnowledgeArticle KnowledgeArticle)
        {
            KnowledgeArticleDAO KnowledgeArticleDAO = new KnowledgeArticleDAO();

            KnowledgeArticleDAO.Id           = KnowledgeArticle.Id;
            KnowledgeArticleDAO.Title        = KnowledgeArticle.Title;
            KnowledgeArticleDAO.Detail       = KnowledgeArticle.Detail;
            KnowledgeArticleDAO.StatusId     = KnowledgeArticle.StatusId;
            KnowledgeArticleDAO.GroupId      = KnowledgeArticle.GroupId;
            KnowledgeArticleDAO.CreatorId    = KnowledgeArticle.CreatorId;
            KnowledgeArticleDAO.DisplayOrder = KnowledgeArticle.DisplayOrder;
            KnowledgeArticleDAO.FromDate     = KnowledgeArticle.FromDate;
            KnowledgeArticleDAO.ToDate       = KnowledgeArticle.ToDate;
            KnowledgeArticleDAO.ItemId       = KnowledgeArticle.ItemId == 0 ? null : KnowledgeArticle.ItemId;
            KnowledgeArticleDAO.KMSStatusId  = KnowledgeArticle.KMSStatusId;
            //KnowledgeArticleDAO.OrganizationId = KnowledgeArticle.OrganizationId;
            KnowledgeArticleDAO.CreatedAt = StaticParams.DateTimeNow;
            KnowledgeArticleDAO.UpdatedAt = StaticParams.DateTimeNow;
            DataContext.KnowledgeArticle.Add(KnowledgeArticleDAO);
            await DataContext.SaveChangesAsync();

            KnowledgeArticle.Id = KnowledgeArticleDAO.Id;
            await SaveReference(KnowledgeArticle);

            return(true);
        }
Пример #5
0
        public async Task <bool> Update(KnowledgeArticle KnowledgeArticle)
        {
            KnowledgeArticleDAO KnowledgeArticleDAO = DataContext.KnowledgeArticle.Where(x => x.Id == KnowledgeArticle.Id).FirstOrDefault();

            if (KnowledgeArticleDAO == null)
            {
                return(false);
            }
            KnowledgeArticleDAO.Id           = KnowledgeArticle.Id;
            KnowledgeArticleDAO.Title        = KnowledgeArticle.Title;
            KnowledgeArticleDAO.Detail       = KnowledgeArticle.Detail;
            KnowledgeArticleDAO.StatusId     = KnowledgeArticle.StatusId;
            KnowledgeArticleDAO.GroupId      = KnowledgeArticle.GroupId;
            KnowledgeArticleDAO.CreatorId    = KnowledgeArticle.CreatorId;
            KnowledgeArticleDAO.DisplayOrder = KnowledgeArticle.DisplayOrder;
            KnowledgeArticleDAO.FromDate     = KnowledgeArticle.FromDate;
            KnowledgeArticleDAO.ToDate       = KnowledgeArticle.ToDate;
            KnowledgeArticleDAO.ItemId       = KnowledgeArticle.ItemId == 0 ? null : KnowledgeArticle.ItemId;
            KnowledgeArticleDAO.KMSStatusId  = KnowledgeArticle.KMSStatusId;
            KnowledgeArticleDAO.UpdatedAt    = StaticParams.DateTimeNow;
            await DataContext.SaveChangesAsync();

            await SaveReference(KnowledgeArticle);

            return(true);
        }
Пример #6
0
 public async Task <bool> Delete(KnowledgeArticle KnowledgeArticle)
 {
     if (await ValidateId(KnowledgeArticle))
     {
     }
     return(KnowledgeArticle.IsValidated);
 }
Пример #7
0
        private async Task SaveReference(KnowledgeArticle KnowledgeArticle)
        {
            #region Gán Organization cho knowledgeArticle
            if (KnowledgeArticle.KnowledgeArticleOrganizationMappings != null)
            {
                await DataContext.KnowledgeArticleOrganizationMapping.Where(p => p.KnowledgeArticleId == KnowledgeArticle.Id).DeleteFromQueryAsync();

                List <KnowledgeArticleOrganizationMappingDAO> KnowledgeArticleOrganizationMappings = new List <KnowledgeArticleOrganizationMappingDAO>();
                foreach (var item in KnowledgeArticle.KnowledgeArticleOrganizationMappings)
                {
                    KnowledgeArticleOrganizationMappingDAO KnowledgeArticleOrganizationMappingDAO = new KnowledgeArticleOrganizationMappingDAO();
                    KnowledgeArticleOrganizationMappingDAO.KnowledgeArticleId = KnowledgeArticle.Id;
                    KnowledgeArticleOrganizationMappingDAO.OrganizationId     = item.OrganizationId;
                    KnowledgeArticleOrganizationMappings.Add(KnowledgeArticleOrganizationMappingDAO);
                }
                await DataContext.KnowledgeArticleOrganizationMapping.BulkMergeAsync(KnowledgeArticleOrganizationMappings);
            }
            #endregion

            #region Gán keyword
            if (KnowledgeArticle.KnowledgeArticleKeywords != null)
            {
                await DataContext.KnowledgeArticleKeyword.Where(p => p.KnowledgeArticleId == KnowledgeArticle.Id).DeleteFromQueryAsync();

                List <KnowledgeArticleKeywordDAO> KnowledgeArticleKeywordDAOs = KnowledgeArticle.KnowledgeArticleKeywords.Select(p => new KnowledgeArticleKeywordDAO
                {
                    KnowledgeArticleId = KnowledgeArticle.Id,
                    Name = p.Name
                }).ToList();
                await DataContext.KnowledgeArticleKeyword.BulkMergeAsync(KnowledgeArticleKeywordDAOs);
            }
            #endregion
        }
Пример #8
0
 public async Task <bool> ValidateDetail(KnowledgeArticle KnowledgeArticle)
 {
     if (string.IsNullOrWhiteSpace(KnowledgeArticle.Detail))
     {
         KnowledgeArticle.AddError(nameof(KnowledgeArticleValidator), nameof(KnowledgeArticle.Detail), ErrorCode.DetailEmpty);
     }
     return(KnowledgeArticle.IsValidated);
 }
Пример #9
0
        public string KnowledgeArticleAddOrUpdate(KnowledgeArticle Model)
        {
            KnowledgeArticleBll bll = new KnowledgeArticleBll();

            Model.Creater  = Creater;
            Model.Modifier = Creater;
            return(bll.KnowledgeArticleAddOrUpdate(Model));
        }
Пример #10
0
        public async Task <bool> Delete(KnowledgeArticle KnowledgeArticle)
        {
            await DataContext.KnowledgeArticle.Where(x => x.Id == KnowledgeArticle.Id).UpdateFromQueryAsync(x => new KnowledgeArticleDAO {
                DeletedAt = StaticParams.DateTimeNow
            });

            return(true);
        }
Пример #11
0
        public async Task <bool> Create(KnowledgeArticle KnowledgeArticle)
        {
            await ValidateTitle(KnowledgeArticle);
            await ValidateFromDateAndToDate(KnowledgeArticle);
            await ValidateGroup(KnowledgeArticle);
            await ValidateDetail(KnowledgeArticle);

            return(KnowledgeArticle.IsValidated);
        }
Пример #12
0
        public async Task <bool> ValidateGroup(KnowledgeArticle KnowledgeArticle)
        {
            if (KnowledgeArticle.Group == null)
            {
                KnowledgeArticle.AddError(nameof(KnowledgeArticleValidator), nameof(KnowledgeArticle.Group), ErrorCode.GroupEmpty);
            }

            return(KnowledgeArticle.IsValidated);
        }
Пример #13
0
 public async Task <bool> ValidateFromDateAndToDate(KnowledgeArticle KnowledgeArticle)
 {
     if (KnowledgeArticle.FromDate == null)
     {
         KnowledgeArticle.AddError(nameof(KnowledgeArticleValidator), nameof(KnowledgeArticle.FromDate), ErrorCode.FromDateEmpty);
     }
     if (KnowledgeArticle.FromDate != null && KnowledgeArticle.ToDate != null && KnowledgeArticle.FromDate >= KnowledgeArticle.ToDate)
     {
         KnowledgeArticle.AddError(nameof(KnowledgeArticleValidator), nameof(KnowledgeArticle.ToDate), ErrorCode.ToDateMoreThanFromDate);
     }
     return(KnowledgeArticle.IsValidated);
 }
Пример #14
0
 public async Task <bool> ValidateTitle(KnowledgeArticle KnowledgeArticle)
 {
     if (string.IsNullOrWhiteSpace(KnowledgeArticle.Title))
     {
         KnowledgeArticle.AddError(nameof(KnowledgeArticleValidator), nameof(KnowledgeArticle.Title), ErrorCode.TitleEmpty);
     }
     else if (KnowledgeArticle.Title.Length > 2000)
     {
         KnowledgeArticle.AddError(nameof(KnowledgeArticleValidator), nameof(KnowledgeArticle.Title), ErrorCode.TitleOverLength);
     }
     return(KnowledgeArticle.IsValidated);
 }
Пример #15
0
        public ActionResult Add(int Id = 0)
        {
            ViewBag.UpDate = false;
            KnowledgeArticle Model = new KnowledgeArticle();

            if (Id > 0)
            {
                Model          = new KnowledgeArticleBll().GetKnowledgeArticleById(Id);
                ViewBag.UpDate = true;
            }
            ViewBag.ClassList = new KnowledgeClassBll().KnowledgeClassPage(string.Empty);
            return(View(Model));
        }
Пример #16
0
        public async Task <KnowledgeArticle> Update(KnowledgeArticle KnowledgeArticle)
        {
            if (!await KnowledgeArticleValidator.Update(KnowledgeArticle))
            {
                return(KnowledgeArticle);
            }
            try
            {
                KnowledgeArticle.KMSStatusId = KMSStatusEnum.NEW.Id;
                var Now = StaticParams.DateTimeNow;
                if (Now >= KnowledgeArticle.FromDate && (KnowledgeArticle.ToDate.HasValue == false || KnowledgeArticle.ToDate >= Now))
                {
                    KnowledgeArticle.KMSStatusId = KMSStatusEnum.DOING.Id;
                }
                else if (KnowledgeArticle.ToDate < Now)
                {
                    KnowledgeArticle.KMSStatusId = KMSStatusEnum.EXPIRED.Id;
                }
                var oldData = await UOW.KnowledgeArticleRepository.Get(KnowledgeArticle.Id);

                await UOW.Begin();

                await UOW.KnowledgeArticleRepository.Update(KnowledgeArticle);

                await UOW.Commit();

                KnowledgeArticle = await UOW.KnowledgeArticleRepository.Get(KnowledgeArticle.Id);

                await Logging.CreateAuditLog(KnowledgeArticle, oldData, nameof(KnowledgeArticleService));

                return(KnowledgeArticle);
            }
            catch (Exception ex)
            {
                await UOW.Rollback();

                if (ex.InnerException == null)
                {
                    await Logging.CreateSystemLog(ex, nameof(KnowledgeArticleService));

                    throw new MessageException(ex);
                }
                else
                {
                    await Logging.CreateSystemLog(ex.InnerException, nameof(KnowledgeArticleService));

                    throw new MessageException(ex.InnerException);
                }
            }
        }
Пример #17
0
    protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
    {
        KnowledgeArticle article = new KnowledgeArticle();

        article.KA_Title      = txtTitle.Text.Trim();
        article.KA_CreateDate = txtTime.Text;
        article.KA_KMID       = Convert.ToInt32(((DataTable)ViewState["dtModule"]).Rows[0]["KM_ID"]);
        article.KA_Content    = Request.Form["t_contents"].ToString();
        if (ViewState["action"].ToString() == "add")
        {
            KnowledgeArticleService.Insert_KnowledgeArticle(article);
        }
        else if (ViewState["action"].ToString() == "update")
        {
            article.KA_ID = Convert.ToInt32(ViewState["kaid"]);
            KnowledgeArticleService.Update_KnowledgeArticle(article);
        }
        CommonFunction.AlertAndRedirect(Literal1, "操作成功", "KnowledgeArticleMgr.aspx?kmid=" + Convert.ToInt32(((DataTable)ViewState["dtModule"]).Rows[0]["KM_ID"]));
    }
Пример #18
0
        public async Task <ActionResult <KnowledgeArticle_KnowledgeArticleDTO> > Get([FromBody] KnowledgeArticle_KnowledgeArticleDTO KnowledgeArticle_KnowledgeArticleDTO)
        {
            if (UnAuthorization)
            {
                return(Forbid());
            }
            if (!ModelState.IsValid)
            {
                throw new BindException(ModelState);
            }

            if (!await HasPermission(KnowledgeArticle_KnowledgeArticleDTO.Id))
            {
                return(Forbid());
            }

            KnowledgeArticle KnowledgeArticle = await KnowledgeArticleService.Get(KnowledgeArticle_KnowledgeArticleDTO.Id);

            return(new KnowledgeArticle_KnowledgeArticleDTO(KnowledgeArticle));
        }
Пример #19
0
        public async Task <bool> ValidateId(KnowledgeArticle KnowledgeArticle)
        {
            KnowledgeArticleFilter KnowledgeArticleFilter = new KnowledgeArticleFilter
            {
                Skip = 0,
                Take = 10,
                Id   = new IdFilter {
                    Equal = KnowledgeArticle.Id
                },
                Selects = KnowledgeArticleSelect.Id
            };

            int count = await UOW.KnowledgeArticleRepository.Count(KnowledgeArticleFilter);

            if (count == 0)
            {
                KnowledgeArticle.AddError(nameof(KnowledgeArticleValidator), nameof(KnowledgeArticle.Id), ErrorCode.IdNotExisted);
            }
            return(count == 1);
        }
Пример #20
0
        public async Task <KnowledgeArticle> Delete(KnowledgeArticle KnowledgeArticle)
        {
            if (!await KnowledgeArticleValidator.Delete(KnowledgeArticle))
            {
                return(KnowledgeArticle);
            }

            try
            {
                await UOW.Begin();

                await UOW.KnowledgeArticleRepository.Delete(KnowledgeArticle);

                await UOW.Commit();

                await Logging.CreateAuditLog(new { }, KnowledgeArticle, nameof(KnowledgeArticleService));

                return(KnowledgeArticle);
            }
            catch (Exception ex)
            {
                await UOW.Rollback();

                if (ex.InnerException == null)
                {
                    await Logging.CreateSystemLog(ex, nameof(KnowledgeArticleService));

                    throw new MessageException(ex);
                }
                else
                {
                    await Logging.CreateSystemLog(ex.InnerException, nameof(KnowledgeArticleService));

                    throw new MessageException(ex.InnerException);
                }
            }
        }
        public KnowledgeArticle_KnowledgeArticleDTO(KnowledgeArticle KnowledgeArticle)
        {
            this.Id           = KnowledgeArticle.Id;
            this.Title        = KnowledgeArticle.Title;
            this.Detail       = KnowledgeArticle.Detail;
            this.StatusId     = KnowledgeArticle.StatusId;
            this.ItemId       = KnowledgeArticle.ItemId;
            this.GroupId      = KnowledgeArticle.GroupId;
            this.CreatorId    = KnowledgeArticle.CreatorId;
            this.DisplayOrder = KnowledgeArticle.DisplayOrder;
            this.Creator      = KnowledgeArticle.Creator == null ? null : new KnowledgeArticle_AppUserDTO(KnowledgeArticle.Creator);
            this.Group        = KnowledgeArticle.Group == null ? null : new KnowledgeArticle_KnowledgeGroupDTO(KnowledgeArticle.Group);
            this.Status       = KnowledgeArticle.Status == null ? null : new KnowledgeArticle_StatusDTO(KnowledgeArticle.Status);
            this.CreatedAt    = KnowledgeArticle.CreatedAt;
            this.UpdatedAt    = KnowledgeArticle.UpdatedAt;
            this.Errors       = KnowledgeArticle.Errors;

            this.KMSStatus = KnowledgeArticle.KMSStatus == null ? null : new KnowledgeArticle_KMSStatusDTO(KnowledgeArticle.KMSStatus);
            this.Item      = KnowledgeArticle.Item == null ? null : new KnowledgeArticle_ItemDTO(KnowledgeArticle.Item);
            this.FromDate  = KnowledgeArticle.FromDate;
            this.ToDate    = KnowledgeArticle.ToDate;
            this.KnowledgeArticleOrganizationMappings = KnowledgeArticle.KnowledgeArticleOrganizationMappings == null ? null : KnowledgeArticle.KnowledgeArticleOrganizationMappings.Select(p => new KnowledgeArticle_KnowledgeArticleOrganizationMappingDTO(p)).ToList();
            this.KnowledgeArticleKeywords             = KnowledgeArticle.KnowledgeArticleKeywords == null ? null : KnowledgeArticle.KnowledgeArticleKeywords.Select(p => new KnowledgeArticle_KnowledgeArticleKeywordDTO(p)).ToList();
        }
Пример #22
0
        public async Task <KnowledgeArticle> Get(long Id)
        {
            KnowledgeArticle KnowledgeArticle = await DataContext.KnowledgeArticle.AsNoTracking()
                                                .Where(x => x.Id == Id).Select(x => new KnowledgeArticle()
            {
                CreatedAt    = x.CreatedAt,
                UpdatedAt    = x.UpdatedAt,
                Id           = x.Id,
                Title        = x.Title,
                Detail       = x.Detail,
                StatusId     = x.StatusId,
                GroupId      = x.GroupId,
                CreatorId    = x.CreatorId,
                DisplayOrder = x.DisplayOrder,
                FromDate     = x.FromDate,
                ToDate       = x.ToDate,
                ItemId       = x.ItemId,
                KMSStatusId  = x.KMSStatusId,
                //OrganizationId = x.OrganizationId,
                Creator = x.Creator == null ? null : new AppUser
                {
                    Id             = x.Creator.Id,
                    Username       = x.Creator.Username,
                    DisplayName    = x.Creator.DisplayName,
                    Address        = x.Creator.Address,
                    Email          = x.Creator.Email,
                    Phone          = x.Creator.Phone,
                    SexId          = x.Creator.SexId,
                    Birthday       = x.Creator.Birthday,
                    Avatar         = x.Creator.Avatar,
                    Department     = x.Creator.Department,
                    OrganizationId = x.Creator.OrganizationId,
                    Longitude      = x.Creator.Longitude,
                    Latitude       = x.Creator.Latitude,
                    StatusId       = x.Creator.StatusId,
                },
                Group = x.Group == null ? null : new KnowledgeGroup
                {
                    Id           = x.Group.Id,
                    Name         = x.Group.Name,
                    Code         = x.Group.Code,
                    StatusId     = x.Group.StatusId,
                    DisplayOrder = x.Group.DisplayOrder,
                    Description  = x.Group.Description,
                },
                //Organization = x.Organization == null ? null : new Organization
                //{
                //    Id = x.Organization.Id,
                //    Code = x.Organization.Code,
                //    Name = x.Organization.Name,
                //    Address = x.Organization.Address,
                //    Phone = x.Organization.Phone,
                //    Path = x.Organization.Path,
                //    ParentId = x.Organization.ParentId,
                //    Email = x.Organization.Email,
                //    StatusId = x.Organization.StatusId,
                //    Level = x.Organization.Level
                //},
                Status = x.Status == null ? null : new Status
                {
                    Id   = x.Status.Id,
                    Code = x.Status.Code,
                    Name = x.Status.Name,
                },
                Item = x.Item == null ? null : new Item
                {
                    Id   = x.Item.Id,
                    Code = x.Item.Code,
                    Name = x.Item.Name,
                },
                KMSStatus = x.KMSStatus == null ? null : new KMSStatus
                {
                    Id   = x.KMSStatus.Id,
                    Code = x.KMSStatus.Code,
                    Name = x.KMSStatus.Name,
                },
                KnowledgeArticleOrganizationMappings = x.KnowledgeArticleOrganizationMappings != null ? x.KnowledgeArticleOrganizationMappings.Select(p => new KnowledgeArticleOrganizationMapping
                {
                    KnowledgeArticleId = p.KnowledgeArticleId,
                    OrganizationId     = p.OrganizationId,
                    Organization       = p.Organization != null ? new Organization
                    {
                        Id       = p.Organization.Id,
                        Code     = p.Organization.Code,
                        Name     = p.Organization.Name,
                        ParentId = p.Organization.ParentId,
                        Path     = p.Organization.Path,
                        Level    = p.Organization.Level,
                        StatusId = p.Organization.StatusId,
                        Phone    = p.Organization.Phone,
                        Email    = p.Organization.Email,
                        Address  = p.Organization.Address,
                    } : null,
                }).ToList() : null,
                KnowledgeArticleKeywords = x.KnowledgeArticleKeywords != null ? x.KnowledgeArticleKeywords.Select(p => new KnowledgeArticleKeyword
                {
                    Id = p.Id,
                    KnowledgeArticleId = p.KnowledgeArticleId,
                    Name = p.Name,
                }).ToList() : null,
            }).FirstOrDefaultAsync();

            if (KnowledgeArticle == null)
            {
                return(null);
            }

            return(KnowledgeArticle);
        }
        /// <summary>
        /// 更新文章信息
        /// </summary>
        /// <param name="article"></param>
        /// <returns></returns>
        public static int Update_KnowledgeArticle(KnowledgeArticle article)
        {
            string sqlStr = "update Main_KnowledgeArticle set KA_Title='" + article.KA_Title + "',KA_Content='" + article.KA_Content + "',KA_CreateDate='" + article.KA_CreateDate + "',KA_KMID='" + article.KA_KMID + "' where KA_ID=" + article.KA_ID;

            return(DBHelper.ExecuteCommand(sqlStr));
        }
        /// <summary>
        /// 添加文章信息
        /// </summary>
        /// <param name="article"></param>
        /// <returns></returns>
        public static int Insert_KnowledgeArticle(KnowledgeArticle article)
        {
            string sqlStr = "insert into Main_KnowledgeArticle(KA_Title,KA_Content,KA_CreateDate,KA_KMID) values('" + article.KA_Title + "','" + article.KA_Content + "','" + article.KA_CreateDate + "','" + article.KA_KMID + "')";

            return(DBHelper.ExecuteCommand(sqlStr));
        }
Пример #25
0
        public async Task <ActionResult> Import(IFormFile file)
        {
            if (UnAuthorization)
            {
                return(Forbid());
            }
            if (!ModelState.IsValid)
            {
                throw new BindException(ModelState);
            }
            AppUserFilter CreatorFilter = new AppUserFilter
            {
                Skip    = 0,
                Take    = int.MaxValue,
                Selects = AppUserSelect.ALL
            };
            List <AppUser> Creators = await AppUserService.List(CreatorFilter);

            KnowledgeGroupFilter GroupFilter = new KnowledgeGroupFilter
            {
                Skip    = 0,
                Take    = int.MaxValue,
                Selects = KnowledgeGroupSelect.ALL
            };
            List <KnowledgeGroup> Groups = await KnowledgeGroupService.List(GroupFilter);

            StatusFilter StatusFilter = new StatusFilter
            {
                Skip    = 0,
                Take    = int.MaxValue,
                Selects = StatusSelect.ALL
            };
            List <Status> Statuses = await StatusService.List(StatusFilter);

            List <KnowledgeArticle> KnowledgeArticles = new List <KnowledgeArticle>();

            using (ExcelPackage excelPackage = new ExcelPackage(file.OpenReadStream()))
            {
                ExcelWorksheet worksheet = excelPackage.Workbook.Worksheets.FirstOrDefault();
                if (worksheet == null)
                {
                    return(Ok(KnowledgeArticles));
                }
                int StartColumn        = 1;
                int StartRow           = 1;
                int IdColumn           = 0 + StartColumn;
                int TitleColumn        = 1 + StartColumn;
                int DetailColumn       = 2 + StartColumn;
                int StatusIdColumn     = 3 + StartColumn;
                int GroupIdColumn      = 4 + StartColumn;
                int CreatorIdColumn    = 5 + StartColumn;
                int DisplayOrderColumn = 6 + StartColumn;

                for (int i = StartRow; i <= worksheet.Dimension.End.Row; i++)
                {
                    if (string.IsNullOrEmpty(worksheet.Cells[i + StartRow, StartColumn].Value?.ToString()))
                    {
                        break;
                    }
                    string IdValue           = worksheet.Cells[i + StartRow, IdColumn].Value?.ToString();
                    string TitleValue        = worksheet.Cells[i + StartRow, TitleColumn].Value?.ToString();
                    string DetailValue       = worksheet.Cells[i + StartRow, DetailColumn].Value?.ToString();
                    string StatusIdValue     = worksheet.Cells[i + StartRow, StatusIdColumn].Value?.ToString();
                    string GroupIdValue      = worksheet.Cells[i + StartRow, GroupIdColumn].Value?.ToString();
                    string CreatorIdValue    = worksheet.Cells[i + StartRow, CreatorIdColumn].Value?.ToString();
                    string DisplayOrderValue = worksheet.Cells[i + StartRow, DisplayOrderColumn].Value?.ToString();

                    KnowledgeArticle KnowledgeArticle = new KnowledgeArticle();
                    KnowledgeArticle.Title        = TitleValue;
                    KnowledgeArticle.Detail       = DetailValue;
                    KnowledgeArticle.DisplayOrder = long.TryParse(DisplayOrderValue, out long DisplayOrder) ? DisplayOrder : 0;
                    AppUser Creator = Creators.Where(x => x.Id.ToString() == CreatorIdValue).FirstOrDefault();
                    KnowledgeArticle.CreatorId = Creator == null ? 0 : Creator.Id;
                    KnowledgeArticle.Creator   = Creator;
                    KnowledgeGroup Group = Groups.Where(x => x.Id.ToString() == GroupIdValue).FirstOrDefault();
                    KnowledgeArticle.GroupId = Group == null ? 0 : Group.Id;
                    KnowledgeArticle.Group   = Group;
                    Status Status = Statuses.Where(x => x.Id.ToString() == StatusIdValue).FirstOrDefault();
                    KnowledgeArticle.StatusId = Status == null ? 0 : Status.Id;
                    KnowledgeArticle.Status   = Status;

                    KnowledgeArticles.Add(KnowledgeArticle);
                }
            }
            KnowledgeArticles = await KnowledgeArticleService.Import(KnowledgeArticles);

            if (KnowledgeArticles.All(x => x.IsValidated))
            {
                return(Ok(true));
            }
            else
            {
                List <string> Errors = new List <string>();
                for (int i = 0; i < KnowledgeArticles.Count; i++)
                {
                    KnowledgeArticle KnowledgeArticle = KnowledgeArticles[i];
                    if (!KnowledgeArticle.IsValidated)
                    {
                        string Error = $"Dòng {i + 2} có lỗi:";
                        if (KnowledgeArticle.Errors.ContainsKey(nameof(KnowledgeArticle.Id)))
                        {
                            Error += KnowledgeArticle.Errors[nameof(KnowledgeArticle.Id)];
                        }
                        if (KnowledgeArticle.Errors.ContainsKey(nameof(KnowledgeArticle.Title)))
                        {
                            Error += KnowledgeArticle.Errors[nameof(KnowledgeArticle.Title)];
                        }
                        if (KnowledgeArticle.Errors.ContainsKey(nameof(KnowledgeArticle.Detail)))
                        {
                            Error += KnowledgeArticle.Errors[nameof(KnowledgeArticle.Detail)];
                        }
                        if (KnowledgeArticle.Errors.ContainsKey(nameof(KnowledgeArticle.StatusId)))
                        {
                            Error += KnowledgeArticle.Errors[nameof(KnowledgeArticle.StatusId)];
                        }
                        if (KnowledgeArticle.Errors.ContainsKey(nameof(KnowledgeArticle.GroupId)))
                        {
                            Error += KnowledgeArticle.Errors[nameof(KnowledgeArticle.GroupId)];
                        }
                        if (KnowledgeArticle.Errors.ContainsKey(nameof(KnowledgeArticle.CreatorId)))
                        {
                            Error += KnowledgeArticle.Errors[nameof(KnowledgeArticle.CreatorId)];
                        }
                        if (KnowledgeArticle.Errors.ContainsKey(nameof(KnowledgeArticle.DisplayOrder)))
                        {
                            Error += KnowledgeArticle.Errors[nameof(KnowledgeArticle.DisplayOrder)];
                        }
                        Errors.Add(Error);
                    }
                }
                return(BadRequest(Errors));
            }
        }
Пример #26
0
 /// <summary>
 /// 置顶
 /// </summary>
 /// <param name="Model"></param>
 /// <returns></returns>
 public string SetTop(KnowledgeArticle Model)
 {
     KnowledgeArticleBll bll = new KnowledgeArticleBll();
     bll.SetTop(Model);
     return new { success = true }.GetJson();
 }
Пример #27
0
 public ActionResult Add(int Id = 0)
 {
     ViewBag.UpDate = false;
     KnowledgeArticle Model = new KnowledgeArticle();
     if (Id > 0)
     {
         Model = new KnowledgeArticleBll().GetKnowledgeArticleById(Id);
         ViewBag.UpDate = true;
     }
     ViewBag.ClassList = new KnowledgeClassBll().KnowledgeClassPage(string.Empty);
     return View(Model);
 }
Пример #28
0
 public string KnowledgeArticleAddOrUpdate(KnowledgeArticle Model)
 {
     KnowledgeArticleBll bll = new KnowledgeArticleBll();
     Model.Creater = Creater;
     Model.Modifier = Creater;
     return bll.KnowledgeArticleAddOrUpdate(Model);
 }
Пример #29
0
        private KnowledgeArticle ConvertDTOToEntity(KnowledgeArticle_KnowledgeArticleDTO KnowledgeArticle_KnowledgeArticleDTO)
        {
            KnowledgeArticle KnowledgeArticle = new KnowledgeArticle();

            KnowledgeArticle.Id           = KnowledgeArticle_KnowledgeArticleDTO.Id;
            KnowledgeArticle.Title        = KnowledgeArticle_KnowledgeArticleDTO.Title;
            KnowledgeArticle.Detail       = KnowledgeArticle_KnowledgeArticleDTO.Detail;
            KnowledgeArticle.StatusId     = KnowledgeArticle_KnowledgeArticleDTO.StatusId;
            KnowledgeArticle.GroupId      = KnowledgeArticle_KnowledgeArticleDTO.GroupId;
            KnowledgeArticle.CreatorId    = KnowledgeArticle_KnowledgeArticleDTO.CreatorId;
            KnowledgeArticle.DisplayOrder = KnowledgeArticle_KnowledgeArticleDTO.DisplayOrder;
            KnowledgeArticle.FromDate     = KnowledgeArticle_KnowledgeArticleDTO.FromDate;
            KnowledgeArticle.ToDate       = KnowledgeArticle_KnowledgeArticleDTO.ToDate;
            KnowledgeArticle.KMSStatusId  = KnowledgeArticle_KnowledgeArticleDTO.KMSStatusId;
            KnowledgeArticle.ItemId       = KnowledgeArticle_KnowledgeArticleDTO.ItemId;
            KnowledgeArticle.Creator      = KnowledgeArticle_KnowledgeArticleDTO.Creator == null ? null : new AppUser
            {
                Id             = KnowledgeArticle_KnowledgeArticleDTO.Creator.Id,
                Username       = KnowledgeArticle_KnowledgeArticleDTO.Creator.Username,
                DisplayName    = KnowledgeArticle_KnowledgeArticleDTO.Creator.DisplayName,
                Address        = KnowledgeArticle_KnowledgeArticleDTO.Creator.Address,
                Email          = KnowledgeArticle_KnowledgeArticleDTO.Creator.Email,
                Phone          = KnowledgeArticle_KnowledgeArticleDTO.Creator.Phone,
                SexId          = KnowledgeArticle_KnowledgeArticleDTO.Creator.SexId,
                Birthday       = KnowledgeArticle_KnowledgeArticleDTO.Creator.Birthday,
                Avatar         = KnowledgeArticle_KnowledgeArticleDTO.Creator.Avatar,
                PositionId     = KnowledgeArticle_KnowledgeArticleDTO.Creator.PositionId,
                Department     = KnowledgeArticle_KnowledgeArticleDTO.Creator.Department,
                OrganizationId = KnowledgeArticle_KnowledgeArticleDTO.Creator.OrganizationId,
                ProvinceId     = KnowledgeArticle_KnowledgeArticleDTO.Creator.ProvinceId,
                Longitude      = KnowledgeArticle_KnowledgeArticleDTO.Creator.Longitude,
                Latitude       = KnowledgeArticle_KnowledgeArticleDTO.Creator.Latitude,
                StatusId       = KnowledgeArticle_KnowledgeArticleDTO.Creator.StatusId,
            };
            KnowledgeArticle.Group = KnowledgeArticle_KnowledgeArticleDTO.Group == null ? null : new KnowledgeGroup
            {
                Id           = KnowledgeArticle_KnowledgeArticleDTO.Group.Id,
                Name         = KnowledgeArticle_KnowledgeArticleDTO.Group.Name,
                Code         = KnowledgeArticle_KnowledgeArticleDTO.Group.Code,
                StatusId     = KnowledgeArticle_KnowledgeArticleDTO.Group.StatusId,
                DisplayOrder = KnowledgeArticle_KnowledgeArticleDTO.Group.DisplayOrder,
                Description  = KnowledgeArticle_KnowledgeArticleDTO.Group.Description,
            };
            KnowledgeArticle.Status = KnowledgeArticle_KnowledgeArticleDTO.Status == null ? null : new Status
            {
                Id   = KnowledgeArticle_KnowledgeArticleDTO.Status.Id,
                Code = KnowledgeArticle_KnowledgeArticleDTO.Status.Code,
                Name = KnowledgeArticle_KnowledgeArticleDTO.Status.Name,
            };
            KnowledgeArticle.KnowledgeArticleOrganizationMappings = KnowledgeArticle_KnowledgeArticleDTO.KnowledgeArticleOrganizationMappings == null ? null : KnowledgeArticle_KnowledgeArticleDTO.KnowledgeArticleOrganizationMappings.Select(p => new KnowledgeArticleOrganizationMapping
            {
                OrganizationId     = p.OrganizationId,
                KnowledgeArticleId = KnowledgeArticle_KnowledgeArticleDTO.Id
            }).ToList();
            KnowledgeArticle.KnowledgeArticleKeywords = KnowledgeArticle_KnowledgeArticleDTO.KnowledgeArticleKeywords == null ? null : KnowledgeArticle_KnowledgeArticleDTO.KnowledgeArticleKeywords.Select(p => new KnowledgeArticleKeyword
            {
                Name = p.Name,
            }).ToList();
            KnowledgeArticle.BaseLanguage = CurrentContext.Language;
            return(KnowledgeArticle);
        }