예제 #1
0
        public async Task <Findings> GetFindingsByID(long id)
        {
            var param = new DynamicParameters();

            param.Add("@ID", id);

            var mapper = new FindingsMapper();

            return((await SqlMapper.QueryAsync(_unitOfWork.Connection,
                                               "GetFindingsByID",
                                               new[]
            {
                typeof(Findings),
                typeof(Attachment),
                typeof(FindingsLineItem),
                typeof(Attachment),
                typeof(Officer)
            },
                                               obj =>
            {
                Findings f = obj[0] as Findings;
                Attachment fatt = obj[1] as Attachment;
                FindingsLineItem fl = obj[2] as FindingsLineItem;
                Attachment at = obj[3] as Attachment;
                Officer o = obj[4] as Officer;
                return mapper.Map(f, fatt, fl, at, o);
            },
                                               param,
                                               splitOn: "ID,FindingsAttachmentID,FindingsLineItemID,AttachmentID,OfficerID",
                                               commandType: CommandType.StoredProcedure,
                                               transaction: _unitOfWork.Transaction)).FirstOrDefault());
        }
예제 #2
0
        public Findings Map(
            Findings findings,
            Attachment findingsattachment,
            FindingsLineItem findingsLineItem,
            Attachment attachment,
            Officer officer)
        {
            if (!_findingsCache.TryGetValue(findings.ID,
                                            out Findings result))
            {
                _findingsCache[findings.ID] = findings;
                result = findings;
            }

            if (officer.ID != Guid.Empty &&
                !_officerCache.ContainsKey(officer.ID))
            {
                findings.Officer          = new Officer();
                _officerCache[officer.ID] = officer;
                findings.Officer          = officer;
            }

            if (findingsattachment.ID != 0 &&
                !_findingsattachmentCache.ContainsKey(findingsattachment.ID))
            {
                findings.Attachment = new Attachment();
                _findingsattachmentCache[findingsattachment.ID] = findingsattachment;
                findings.Attachment = findingsattachment;
            }

            if (findingsLineItem.ID != 0)
            {
                if (!_findingslineitemCache.TryGetValue(
                        findingsLineItem.ID,
                        out FindingsLineItem liOut))
                {
                    findings.LineItems           = new List <FindingsLineItem>();
                    findingsLineItem.Attachments = new List <Attachment>();
                    _findingslineitemCache[findingsLineItem.ID] = findingsLineItem;
                    liOut = findingsLineItem;
                    findings.LineItems.Add(findingsLineItem);
                }

                if (attachment.ID != 0 &&
                    !_attachmentCache.ContainsKey(attachment.ID))
                {
                    liOut.Attachments.Add(attachment);
                    _attachmentCache[attachment.ID] = attachment;
                }
            }

            return(result);
        }
예제 #3
0
        public Model.JobOrder Map(Model.JobOrder joborder,
                                  JobOrderLineItem lineitem = null,
                                  Premise premise           = null,
                                  Customer customer         = null,
                                  Person person             = null,
                                  ContactInfo contactInfo   = null,
                                  Attendee attendee         = null,
                                  Officer officer           = null,
                                  Attachment attachment     = null,
                                  Officer invitee           = null,
                                  Log log                               = null,
                                  Findings findings                     = null,
                                  Officer findingsOfficer               = null,
                                  FindingsLineItem findingsLineItem     = null,
                                  Attachment findingsLineItemAttachment = null,
                                  Attachment signature                  = null)
        {
            if (!dict.TryGetValue(joborder.ID, out Model.JobOrder result))
            {
                dict[joborder.ID] = joborder;

                if (!string.IsNullOrEmpty(officer?.Name))
                {
                    joborder.Officer = officer;
                }

                if (!string.IsNullOrEmpty(customer?.Name))
                {
                    joborder.Customer = customer;
                }

                result = joborder;
            }

            if ((lineitem?.ID ?? 0) > 0 &&
                !_liCache.ContainsKey(lineitem.ID))
            {
                _liCache[lineitem.ID] = lineitem;

                if (result.LineItems == null)
                {
                    result.LineItems = new List <JobOrderLineItem>();
                }
                result.LineItems.Add(lineitem);
            }

            if ((premise?.ID ?? 0) > 0 &&
                (result.Premises?.FirstOrDefault(e => e.ID == premise.ID) == null))
            {
                if (result.Premises == null)
                {
                    result.Premises = new List <Premise>();
                }
                result.Premises.Add(premise);
            }

            if ((attendee?.ID ?? 0) > 0 &&
                !_attendeeCache.ContainsKey(attendee.ID))
            {
                _attendeeCache[attendee.ID] = attendee;

                if (result.Attendees == null)
                {
                    result.Attendees = new List <Attendee>();
                }

                result.Attendees.Add(attendee);
            }

            if ((log?.ID ?? 0) > 0 &&
                !_logCache.ContainsKey(log.ID))
            {
                _logCache[log.ID] = log;

                if (result.Logs == null)
                {
                    result.Logs = new List <Log>();
                }
                result.Logs.Add(log);
            }

            if (!string.IsNullOrEmpty(invitee?.Name) &&
                result.Invitees?.FirstOrDefault(e => e.ID == invitee.ID) == null)
            {
                if (result.Invitees == null)
                {
                    result.Invitees = new List <Officer>();
                }

                result.Invitees.Add(invitee);
            }

            Findings outFindings = null;

            if ((findings?.ID ?? 0) > 0 &&
                !_findingsCache.TryGetValue(findings.ID, out outFindings))
            {
                _findingsCache[findings.ID] = findings;

                if (result.Findings == null)
                {
                    result.Findings = new List <Findings>();
                }

                if (!string.IsNullOrEmpty(findingsOfficer?.Name))
                {
                    findings.Officer = findingsOfficer;
                }

                if ((signature?.ID ?? 0) > 0)
                {
                    findings.Attachment = signature;
                }

                result.Findings.Add(findings);
                outFindings = findings;
            }

            FindingsLineItem outFindingsLineItem = null;

            if ((findingsLineItem?.ID ?? 0) > 0 &&
                !_findingsLineItemCache.TryGetValue(findingsLineItem.ID, out outFindingsLineItem))
            {
                _findingsLineItemCache[findingsLineItem.ID] = findingsLineItem;

                if (outFindings.LineItems == null)
                {
                    outFindings.LineItems = new List <FindingsLineItem>();
                }

                outFindings.LineItems.Add(findingsLineItem);

                outFindingsLineItem = findingsLineItem;
            }

            if ((findingsLineItemAttachment?.ID ?? 0) > 0 &&
                !_findingsLineItemAttachmentCache.ContainsKey(findingsLineItemAttachment.ID))
            {
                _findingsLineItemAttachmentCache[findingsLineItemAttachment.ID] = findingsLineItemAttachment;

                if (outFindingsLineItem.Attachments == null)
                {
                    outFindingsLineItem.Attachments = new List <Attachment>();
                }
                outFindingsLineItem.Attachments.Add(findingsLineItemAttachment);
            }

            Person outContactPerson = null;

            if (person?.ID != null &&
                person.ID != Guid.Empty &&
                !_personCache.TryGetValue(person.ID, out outContactPerson))
            {
                _personCache[person.ID] = person;

                outContactPerson = person;
            }

            result.ContactPerson = outContactPerson;


            if ((contactInfo?.ID ?? 0L) != 0L &&
                !_contactInfoCache.ContainsKey(contactInfo.ID))
            {
                _contactInfoCache[contactInfo.ID] = contactInfo;

                if (outContactPerson.ContactInfos == null)
                {
                    outContactPerson.ContactInfos = new List <ContactInfo>();
                }
                outContactPerson.ContactInfos.Add(contactInfo);
            }

            return(result);
        }