/// <summary> /// UploadAttachment /// </summary> /// <param name="request">UploadAttachmentRequest information</param> public UploadAttachmentResponse UploadAttachment(IRepository <Attachment> attachmentRepository, IRepository <AttachmentData> attachmentDataRepository, IRepository <IncidentUpdateEvent> incidentUpdateEventRepository, IRepository <Staff> staffRepository, IUnitOfWork uow, IExceptionManager exceptionManager, UploadAttachmentRequest request) { UploadAttachmentResponse ReturnValue = new UploadAttachmentResponse(); try { #region Parameter validation if (null == request) { throw new ArgumentOutOfRangeException("request"); } if (null == attachmentRepository) { throw new ArgumentOutOfRangeException("dataRepository"); } if (null == uow) { throw new ArgumentOutOfRangeException("uow"); } #endregion using (uow) { // Create response message contract bool HasError = false; // Create empty message list List <string> Messages = new List <string>(); var AttachmentData = AutoMapper.Mapper.Map <AttachmentDC, Attachment>(request.Attachment); HasError = AttachmentComponent.UploadAttachment(AttachmentData, request.DocumentBody, attachmentRepository, attachmentDataRepository); //out Messages); //pass back the details of the newly inserted document ReturnValue.Attachment = AutoMapper.Mapper.Map <Attachment, AttachmentDC>(AttachmentData); if (!HasError) { Messages.Add("Added"); // Add to Incident history IncidentUpdateEvent Guid userWhoUpdatedIncident = Guid.Parse(request.UserID); string staffName = staffRepository.Find(new Specification <Staff>(x => x.Code == userWhoUpdatedIncident)).Select(x => x.FirstName + " " + x.LastName).First(); IncidentUpdateEvent incidentUpdateEventItem = new IncidentUpdateEvent(); incidentUpdateEventItem.Code = Guid.NewGuid(); incidentUpdateEventItem.DateTime = DateTime.Now; incidentUpdateEventItem.IncidentCode = AttachmentData.IncidentCode; incidentUpdateEventItem.Type = "Update"; incidentUpdateEventItem.UpdateBy = staffName; //IncidentUpdateEvent List <IncidentUpdateEvent> incidentUpdateEventList = incidentUpdateEventRepository.Find(new Specification <IncidentUpdateEvent>(x => x.IncidentCode == AttachmentData.IncidentCode && x.Type == "Update")).ToList(); incidentUpdateEventList = incidentUpdateEventList.OrderBy(x => x.DateTime).ToList(); //Only store last 5 update events (list is ordered by date time (asc) so the elementAt 0 will be the oldest if (incidentUpdateEventList.Count == 5) { incidentUpdateEventRepository.Delete(incidentUpdateEventList.ElementAt(0)); } incidentUpdateEventRepository.Add(incidentUpdateEventItem); } else { Messages.Add("Failed"); } //if (IsDuplicate) //{ // Messages.Add(MessageComponent.CreateWarningMessage(ResourceInformation.RES_INFORM_DOCUMENT_DUPLICATE)); //} // Convert messages be's to data contracts ReturnValue.Messages = Messages; // Return success/failure indicator ReturnValue.Result = HasError; uow.Commit(); } return(ReturnValue); } catch (Exception e) { //Prevent exception from propogating across the service interface exceptionManager.ShieldException(e); return(null); } }
/// <summary> /// DownloadAgreementDocument /// </summary> /// <param name="request">DownloadAgreementDocumentRequest information</param> public DownloadAttachmentResponse DownloadAttachment(IRepository <Attachment> attachmentRepository, IRepository <AttachmentData> attachmentDataRepository, IUnitOfWork uow, IExceptionManager exceptionManager, DownloadAttachmentRequest request) { #region Parameter validation if (null == request) { throw new ArgumentOutOfRangeException("request"); } if (null == attachmentRepository) { throw new ArgumentOutOfRangeException("dataRepository"); } if (null == uow) { throw new ArgumentOutOfRangeException("uow"); } #endregion DownloadAttachmentResponse ReturnValue = new DownloadAttachmentResponse(); try { #region Parameter validation if (null == request) { throw new ArgumentOutOfRangeException("request"); } if (null == attachmentRepository) { throw new ArgumentOutOfRangeException("dataRepository"); } if (null == uow) { throw new ArgumentOutOfRangeException("uow"); } #endregion using (uow) { bool HasError = false; // Create empty message list List <string> Messages = new List <string>(); // Call business method ReturnValue.DocumentBody = AttachmentComponent.DownloadAttachment(request.AttachmentCode, attachmentRepository); // out Messages); // Return success/failure indicator ReturnValue.Result = HasError; } } catch (Exception e) { // If any exceptions occur, convert them to fault contract exceptionManager.ShieldException(e); } return(ReturnValue); }