public AnnouncementApplication AddToAnnouncement(int announcementId, AnnouncementTypeEnum type, Guid applicationId) { var app = ServiceLocator.ServiceLocatorMaster.ApplicationService.GetApplicationById(applicationId); EnsureApplicationPermission(app.Id); using (var uow = Update()) { var ann = ServiceLocator.GetAnnouncementService(type).GetAnnouncementDetails(announcementId); if (!ApplicationSecurity.CanAddToAnnouncement(app, ann, Context)) { throw new ChalkableSecurityException(); } var aa = new AnnouncementApplication { AnnouncementRef = announcementId, ApplicationRef = applicationId, Active = false, Order = ServiceLocator.GetAnnouncementService(type).GetNewAnnouncementItemOrder(ann) }; var da = new AnnouncementApplicationDataAccess(uow); da.Insert(aa); uow.Commit(); aa = da.GetAll(new AndQueryCondition { { nameof(AnnouncementApplication.AnnouncementRef), announcementId }, { nameof(AnnouncementApplication.ApplicationRef), applicationId }, { nameof(AnnouncementApplication.Active), false } }).OrderByDescending(x => x.Id).First(); return(aa); } }
public AnnouncementApplication AddToAnnouncement(int announcementId, AnnouncementTypeEnum announcementType, Guid applicationId) { var app = ServiceLocator.ServiceLocatorMaster.ApplicationService.GetApplicationById(applicationId); var ann = ServiceLocator.GetAnnouncementService(announcementType).GetAnnouncementDetails(announcementId); if (!ApplicationSecurity.CanAddToAnnouncement(app, ann, Context)) { throw new ChalkableSecurityException(); } var aa = new AnnouncementApplication { AnnouncementRef = announcementId, ApplicationRef = applicationId, Active = false, Order = ServiceLocator.GetAnnouncementService(announcementType).GetNewAnnouncementItemOrder(ann) }; AnnouncementApplicationStorage.Add(aa); aa = AnnouncementApplicationStorage.GetAll(announcementId, applicationId, false).OrderByDescending(x => x.Id).First(); return(aa); }
public static AnnouncementApplicationViewData Create(AnnouncementApplication announcementApplication, Application application, int?currentPersonId, AnnouncementTypeEnum announcementType) { var res = new AnnouncementApplicationViewData(application) { AnnouncementApplicationId = announcementApplication.Id, Active = announcementApplication.Active, AnnouncementId = announcementApplication.AnnouncementRef, AnnouncementType = (int)announcementType, EditUrl = AppTools.BuildAppUrl(application, announcementApplication.Id, AppMode.Edit), ViewUrl = AppTools.BuildAppUrl(application, announcementApplication.Id, AppMode.View), GradingViewUrl = AppTools.BuildAppUrl(application, announcementApplication.Id, AppMode.GradingView), CurrentPersonId = currentPersonId, Order = announcementApplication.Order, Text = announcementApplication.Text, LongDescription = announcementApplication.Description, ImageUrl = announcementApplication.ImageUrl }; return(res); }