Пример #1
0
        /// <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);
            }
        }
Пример #2
0
        /// <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);
        }