示例#1
0
        public IHttpActionResult Get(int familyId)
        {
            using (bkContext context = new bkContext())
            {
                Family f = context.Families.Where(x => x.FamilyID == familyId).FirstOrDefault();
                if (f == null)
                {
                    return(BadRequest("Family record cannot be loaded."));
                }

                List <bk_GetFamilyMembers_Result> members = context.bk_GetFamilyMembers(familyId).ToList();

                FamilyViewModel fvm = new FamilyViewModel();
                fvm.FamilyNative   = f.FamilyNative;
                fvm.Address1       = f.Address1;
                fvm.Address2       = f.Address2;
                fvm.CategoryID     = f.CategoryID;
                fvm.City           = f.City;
                fvm.District       = f.District;
                fvm.Country        = f.Country;
                fvm.FamilyID       = f.FamilyID;
                fvm.NukhID         = f.NukhID;
                fvm.PostalCode     = f.PostalCode;
                fvm.State          = f.State;
                fvm.HeadOfFamilyID = f.HeadOfFamilyID;
                fvm.CanEdit        = CanEditFamily(f.FamilyID);

                Member hofMember = f.Member;
                if (hofMember != null)
                {
                    fvm.HeadOfFirstName = hofMember.FirstName;
                    fvm.HeadOfLastName  = hofMember.LastName;
                }

                foreach (var item in members)
                {
                    var tmp = new FamilyMemberViewModel();

                    tmp.DOB               = item.DOB;
                    tmp.MaritalStatusId   = item.MaritalStatusID;
                    tmp.MemberID          = item.MemberID;
                    tmp.Name              = $"{item.FirstName} {item.LastName}";
                    tmp.CanEdit           = CanEditMember(f.FamilyMemberAssociations.ToList(), item.MemberID);
                    tmp.MatrimonialExists = item.MatrimonialExists.Value;
                    tmp.Gender            = item.Gender;
                    tmp.Alive             = item.Alive;
                    tmp.DOD               = item.DOD;
                    tmp.PaternalFamilyId  = item.PaternalFamilyId;
                    if (tmp.PaternalFamilyId.HasValue)
                    {
                        tmp.PaternalFamilyName = string.Format("{0}, {1}", item.PaternalFamilyName, item.PaternalFamilyAddress);
                    }

                    tmp.MaternalFamilyId = item.MaternalFamilyId;
                    if (tmp.MaternalFamilyId.HasValue)
                    {
                        tmp.MaternalFamilyName = string.Format("{0}, {1}", item.MaternalFamilyName, item.MaternalFamilyAddress);
                    }

                    if (!string.IsNullOrEmpty(item.rFirstName))
                    {
                        tmp.RelatedToName = $"{item.rFirstName} {item.rLastName}";
                    }

                    tmp.RelationTypeId  = item.RelationTypeId;
                    tmp.DefaultFamilyId = item.DefaultFamilyId;

                    fvm.Members.Add(tmp);
                }

                fvm.Members = fvm.Members.OrderByDescending(x => x.Age).ToList();

                List <bk_PendingApprovals_Result> approvals = context.bk_PendingApprovals(LoggedInMemberId).ToList();
                foreach (var item in approvals)
                {
                    var tmp = new PendingApprovalViewModel();

                    tmp.AddedByFirstName = item.AddedByFirstName;
                    tmp.AddedById        = item.AddedById;
                    tmp.AddedByLastName  = item.AddedByLastName;
                    tmp.AddedOn          = item.AddedOn;
                    tmp.AddedToFirstName = item.AddedToFirstName;
                    tmp.AddedToId        = item.AddedToId;
                    tmp.AddedToLastName  = item.AddedToLastName;
                    tmp.FamilyId         = item.FamilyId;

                    fvm.PendingApprovals.Add(tmp);
                }

                return(Ok(fvm));
            }
        }