Ejemplo n.º 1
0
        /// <summary>
        /// 更改公告信息
        /// </summary>
        /// <param name="announceDTO">更新的公告信息</param>
        /// <returns></returns>
        public GetAnnouncementDTO UpdateAnnouncement(AddAnnouncementDTO announceDTO, Func <Announcement, bool> privilege)
        {
            var newValue = Mapper.Map <Announcement>(announceDTO);

            using (var ctx = new AspodesDB())
            {
                var oldValue = ctx.Announcements.FirstOrDefault(a => a.AnnouncementId == newValue.AnnouncementId);
                if (oldValue == null)
                {
                    throw new NotFoundException("未找到公告");
                }
                if (!privilege(oldValue))
                {
                    throw new UnauthorizedAccessException();
                }


                //不允许在Update时更改的值
                newValue.Status      = oldValue.Status;
                newValue.InstituteId = oldValue.InstituteId;
                newValue.PublisherId = oldValue.PublisherId;
                newValue.PublishDate = oldValue.PublishDate;
                ctx.Entry(oldValue).CurrentValues.SetValues(newValue);
                ctx.SaveChanges();
                return(Mapper.Map <GetAnnouncementDTO>(newValue));
            }
        }
Ejemplo n.º 2
0
 public HttpResponseMessage UpdateDepartAnnouncement(AddAnnouncementDTO announceDTO)
 {
     try
     {
         return(ResponseWrapper.SuccessResponse(repository.UpdateAnnouncement(announceDTO, a => a.Type == "D")));
     }
     catch (Exception e)
     {
         return(ResponseWrapper.ExceptionResponse(e));
     }
 }
Ejemplo n.º 3
0
 public HttpResponseMessage UpdateInstAnnouncement(AddAnnouncementDTO announceDTO)
 {
     try
     {
         var user = UserHelper.GetCurrentUser();
         return(ResponseWrapper.SuccessResponse(repository.UpdateAnnouncement(announceDTO, a => a.Type == "I" && a.InstituteId == user.InstId)));
     }
     catch (Exception e)
     {
         return(ResponseWrapper.ExceptionResponse(e));
     }
 }
Ejemplo n.º 4
0
        /// <summary>
        /// Maps <paramref name="addAnnouncementDTO"/> to <c><b>Announcement</b></c>  object and adds that product to repository.
        /// </summary>
        /// <param name="addAnnouncementDTO">Announcement to be added.</param>
        /// <returns></returns>
        public async Task AddAnnouncementAsync(AddAnnouncementDTO addAnnouncementDTO)
        {
            var newAnnnouncement = new Announcement
            {
                Title       = addAnnouncementDTO.Title.ToUpper(),
                Description = addAnnouncementDTO.Description.ToUpper(),
                IsFixed     = addAnnouncementDTO.IsFixed,
                MentorId    = addAnnouncementDTO.MentorId
            };

            await _announcementRepository.AddAsync(newAnnnouncement).ConfigureAwait(false);
        }
Ejemplo n.º 5
0
 public HttpResponseMessage AddDepartAnnouncement(AddAnnouncementDTO dto)
 {
     try
     {
         dto.Type = "D";
         var result = repository.AddAnnouncement(dto);
         return(ResponseWrapper.SuccessResponse(result));
     }
     catch (Exception e)
     {
         return(ResponseWrapper.ExceptionResponse(e));
     }
 }
Ejemplo n.º 6
0
        public async Task <dynamic> postAnnouncement([FromBody] AddAnnouncementDTO request)
        {
            var announcement = new DimAnnouncements()
            {
                AnnouncementTitle = request.AnnouncementTitle,
                AnnouncementBody  = request.AnnouncementBody,
                FromDt            = request.FromDt ?? DateTime.UtcNow,
                ToDt     = request.ToDt,
                CreateDt = DateTime.UtcNow,
            };

            db.DimAnnouncements.Add(announcement);
            db.SaveChanges();

            return(Ok("Announcement Added"));
        }
Ejemplo n.º 7
0
        /// <summary>
        /// 添加公告、修改公告
        /// </summary>
        /// <param name="announceDTO">公告信息</param>
        /// <returns>
        /// 添加成功,返回ResponseStatus.success
        /// 失败,返回ResponseStatus.unknown_error和错误信息
        /// </returns>
        public GetAnnouncementDTO AddAnnouncement(AddAnnouncementDTO announceDTO)
        {
            Announcement saveValue = null;

            using (var ctx = new AspodesDB())
            {
                var oldValue = ctx.Announcements.FirstOrDefault(a => a.AnnouncementId == announceDTO.AnnouncementId);

                if (oldValue == null)
                {
                    Announcement announce = Mapper.Map <Announcement>(announceDTO);
                    var          user     = UserHelper.GetCurrentUser();
                    announce.InstituteId = user.InstId;
                    announce.PublisherId = user.UserId;
                    saveValue            = ctx.Announcements.Add(announce);
                    ctx.SaveChanges();
                    foreach (int attachmentId in announceDTO.Attachments)
                    {
                        ctx.AnnouncementAttachments.Find(attachmentId).AnnouncementId = saveValue.AnnouncementId;
                    }
                }
                else
                {
                    saveValue = Mapper.Map <Announcement>(announceDTO);
                    //不允许在Update时更改的值
                    saveValue.Status         = oldValue.Status;
                    saveValue.AnnouncementId = oldValue.AnnouncementId;
                    saveValue.InstituteId    = oldValue.InstituteId;
                    saveValue.PublisherId    = oldValue.PublisherId;
                    saveValue.PublishDate    = oldValue.PublishDate;
                    ctx.Entry(oldValue).CurrentValues.SetValues(saveValue);
                    ctx.SaveChanges();
                    foreach (int attachmentId in announceDTO.Attachments)
                    {
                        ctx.AnnouncementAttachments.Find(attachmentId).AnnouncementId = saveValue.AnnouncementId;
                    }
                }
                ctx.SaveChanges();
                return(Mapper.Map <GetAnnouncementDTO>(saveValue));
            }
        }
Ejemplo n.º 8
0
 public async Task <IActionResult> AddAnnouncement([FromBody] AddAnnouncementDTO addAnnouncement)
 {
     return(await _announcementService.AddAnnouncementAsync(addAnnouncement).ConfigureAwait(false).GetObjectResponseAsync <AddAnnouncementDTO>("Success").ConfigureAwait(false));
 }