public static void PopulateInmateNames(this IRtcmMsg msg)
        {
            if (!msg.IsDataValid())
            {
                return;
            }

            GetInmateArguments args = new GetInmateArguments();

            args.InmateId = msg.Header.Pin;
            args.SiteId   = msg.Header.SiteId;

            Inmate inmate = InmateRepo.GetInmate(args);

            if (inmate != null)
            {
                msg.Header.InmateFirstName  = inmate.FirstName;
                msg.Header.InmateMiddleName = inmate.MiddleName;
                msg.Header.InmateLastName   = inmate.LastName;
            }
        }
Exemple #2
0
        public static Inmate GetInmate(GetInmateArguments args)
        {
            String strPinId = args.InmateId;

            if (!String.IsNullOrWhiteSpace(strPinId))
            {
                strPinId = StringHelper.ApinToPinId(strPinId);
            }

            if (String.IsNullOrWhiteSpace(strPinId) || String.IsNullOrWhiteSpace(args.SiteId))
            {
                throw new ArgumentException("Invalid inmate ID or site ID");
            }

            using (NexusContext ctx = new NexusContext())
            {
                PinId currentInmate = ctx.PinIds.FirstOrDefault(x => x.SiteId == args.SiteId && x.Pin == strPinId);

                if (currentInmate == null)
                {
                    throw new ArgumentException("Invalid inmate Id");
                }

                Inmate wsInmate = new Inmate
                {
                    PinId = currentInmate.Pin,
                    InmateIdentifierAtFacility = currentInmate.InmateReferenceId.GetValueOrDefault().ToString(),
                    Apin        = currentInmate.Apin,
                    SiteId      = currentInmate.SiteId,
                    DateOfBirth = StringHelper.DobToDateTime(currentInmate.Dob).GetValueOrDefault(),
                    ReleaseDate = (currentInmate.ReleaseDate ?? DateTime.Parse("1/1/1900")),
                    DateEntered = (currentInmate.DateEntered ?? DateTime.Parse("1/1/1900")),
                    Pin2        = currentInmate.Pin2,
                    Location    = currentInmate.Location,
                    Mailbox     = currentInmate.Mailbox,
                    FirstName   = currentInmate.Name,
                    MiddleName  = "",
                    LastName    = ""
                };

                //  split single name field in pin table to first, middle last
                String[] str = StringHelper.NameParts(currentInmate.Name);
                wsInmate.FirstName  = str[0];
                wsInmate.MiddleName = str[1];
                wsInmate.LastName   = str[2];

                if (currentInmate.Active.HasValue && currentInmate.Active.Value)
                {
                    wsInmate.InmateStatus = InmateStatus.Active;
                }
                else
                {
                    if (wsInmate.ReleaseDate > DateTime.Parse("1/1/1900"))
                    {
                        wsInmate.InmateStatus = InmateStatus.Released;
                    }
                    else
                    {
                        wsInmate.InmateStatus = InmateStatus.Inactive;
                    }
                }

                return(wsInmate);
            }
        }