public static List<LodgeMember> SearchMembers(string searchText, string searchField, string xmlFileName)
 {
     var lodgeMembers = new List<LodgeMember>();
     try
     {
         XmlDocument xdoc = new XmlDocument();
         xdoc.Load(xmlFileName);
         //"MasonId", "Last Name", "First Name"
         if (searchField == "MasonId")
         {
             var memberNodes = xdoc.SelectNodes("//Members/Member[contains(@MasonId,'" + searchText + "')]");
             foreach (XmlNode memberNode in memberNodes)
             {
                 var lodgeMember = new LodgeMember();
                 lodgeMember.MemberNumber = int.Parse(memberNode.Attributes["MasonId"].InnerText);
                 var personNode = xdoc.SelectSingleNode("//People/Person[@PersonId='" + memberNode.Attributes["PersonId"].InnerText + "']");
                 lodgeMember.MemberStatusText = xdoc.SelectSingleNode("//Refs/refItem[@refCode='" + memberNode["CurrentStatus"].InnerText + "']").Attributes["refDescription"].InnerText;
                 lodgeMember.FirstName = personNode["FirstName"].InnerText;
                 lodgeMember.LastName = personNode["LastName"].InnerText;
                 lodgeMember.MiddleName = personNode["MiddleName"].InnerText;
                 lodgeMember.FullName = lodgeMember.FirstName + (lodgeMember.MiddleName == "" ? " " : " " + lodgeMember.MiddleName + " ") + lodgeMember.LastName;
                 lodgeMembers.Add(lodgeMember);
             }
         }
         if (searchField == "Last Name")
         {
             XmlNodeList people = xdoc.SelectNodes("//People/Person[contains(LastName,'" + searchText + "')]");
             foreach (XmlNode person in people)
             {
                 var lodgeMember = new LodgeMember();
                 lodgeMember.FirstName = person["FirstName"].InnerText;
                 lodgeMember.LastName = person["LastName"].InnerText;
                 lodgeMember.MiddleName = person["MiddleName"].InnerText;
                 lodgeMember.FullName = lodgeMember.FirstName + (lodgeMember.MiddleName == "" ? " " : " " + lodgeMember.MiddleName + " ") + lodgeMember.LastName;
                 var memberNode = xdoc.SelectSingleNode("//Members/Member[@PersonId='" + person.Attributes["PersonId"].InnerText + "']");
                 lodgeMember.MemberNumber = int.Parse(memberNode.Attributes["MasonId"].InnerText);
                 lodgeMember.MemberStatusText = xdoc.SelectSingleNode("//Refs/refItem[@refCode='" + memberNode["CurrentStatus"].InnerText + "']").Attributes["refDescription"].InnerText;
                 lodgeMembers.Add(lodgeMember);
             }
         }
         if (searchField == "First Name")
         {
             XmlNodeList people = xdoc.SelectNodes("//People/Person[contains(FirstName,'" + searchText + "')]");
             foreach (XmlNode person in people)
             {
                 var lodgeMember = new LodgeMember();
                 lodgeMember.FirstName = person["FirstName"].InnerText;
                 lodgeMember.LastName = person["LastName"].InnerText;
                 lodgeMember.MiddleName = person["MiddleName"].InnerText;
                 lodgeMember.FullName = lodgeMember.FirstName + (lodgeMember.MiddleName == "" ? " " : " " + lodgeMember.MiddleName + " ") + lodgeMember.LastName;
                 var memberNode = xdoc.SelectSingleNode("//Members/Member[@PersonId='" + person.Attributes["PersonId"].InnerText + "']");
                 lodgeMember.MemberNumber = int.Parse(memberNode.Attributes["MasonId"].InnerText);
                 lodgeMember.MemberStatusText = xdoc.SelectSingleNode("//Refs/refItem[@refCode='" + memberNode["CurrentStatus"].InnerText + "']").Attributes["refDescription"].InnerText;
                 lodgeMembers.Add(lodgeMember);
             }
         }
         if (lodgeMembers.Count == 0)
             lodgeMembers.Add(new LodgeMember() { FullName = "No results found" });
     }
     catch (Exception ex) { lodgeMembers.Add(new LodgeMember() { FullName = ex.Message }); }
     return lodgeMembers;
 }
        public static List<LodgeMember> GetMemberList(string xmlFileName)
        {
            var lodgeList = new List<LodgeMember>();
            try
            {
                XmlDocument xDoc = new XmlDocument();
                xDoc.Load(xmlFileName);
                XmlNodeList members = xDoc.SelectNodes("//Members/Member[@Status!='MBX']");

                //"MBX" ="Deceased" />

                foreach (XmlNode memberNode in members)
                {
                    var lodgeMember = new LodgeMember();
                    lodgeMember.MemberNumber = int.Parse(memberNode.Attributes["MasonId"].InnerText);
                    lodgeMember.MemberStatusText = xDoc.SelectSingleNode("//Refs/refItem[@refCode='" + memberNode.Attributes["Status"].InnerText + "']").Attributes["refDescription"].InnerText;
                    lodgeMember.MemberStatus = memberNode.Attributes["Status"].InnerText;
                    lodgeMember.LodgeStatus = xDoc.SelectSingleNode("//Refs/refItem[@refCode='" + memberNode.Attributes["LodgeStatus"].InnerText + "']").Attributes["refDescription"].InnerText;
                    lodgeMember.Raised = memberNode.Attributes["Raised"].InnerText;
                    lodgeMember.LastReinstated = memberNode.Attributes["LastReinstated"].InnerText;

                    string personId = memberNode.Attributes["PersonId"].Value;
                    XmlNode personNode = xDoc.SelectSingleNode("//People//Person[@PersonId='" + personId + "']");
                    lodgeMember.FirstName = personNode.Attributes["FirstName"].InnerText;
                    lodgeMember.MiddleName = personNode.Attributes["MiddleName"].InnerText;
                    lodgeMember.LastName = personNode.Attributes["LastName"].InnerText;
                    lodgeMember.FullName = lodgeMember.FirstName + (lodgeMember.MiddleName == "" ? " " : " " + lodgeMember.MiddleName + " ") + lodgeMember.LastName;
                    XmlNode addressNode = personNode.SelectSingleNode("Addresses/Address[last()]");
                    lodgeMember.StreetAddress = addressNode.Attributes["StreetAddress"].InnerText;
                    lodgeMember.City = addressNode.Attributes["City"].InnerText;
                    lodgeMember.State = addressNode.Attributes["State"].InnerText;
                    lodgeMember.Zip = addressNode.Attributes["Zip"].InnerText;
                    XmlNode CommDevicesNode = personNode.SelectSingleNode("CommDevices");
                    lodgeMember.HomePhone = CommDevicesNode.Attributes["HomePhone"].InnerText;
                    lodgeMember.PersonalEmail = CommDevicesNode.Attributes["PersonalEmail"].InnerText;

                    lodgeList.Add(lodgeMember);
                }
                if (lodgeList.Count == 0)
                    lodgeList.Add(new LodgeMember() { LastName = "No records found" });
            }
            catch (Exception ex)
            {
                lodgeList.Add(new LodgeMember() { LastName = ex.Message });
            }
            return lodgeList;
        }
 public static string MemberAddUpdate(LodgeMember lodgeMember, string xmlFileName)
 {
     string success = "ono";
     try
     {
         XmlDocument xdoc = new XmlDocument();
         xdoc.Load(xmlFileName);
         success = LodgeDataXml.MemberAddUpdateRow(lodgeMember, xdoc);
         xdoc.Save(xmlFileName);
     }
     catch (Exception ex)
     {
         success = ex.Message;
     }
     return success;
 }
        private List<LodgeMember> LoadIntoModelCollection(HttpPostedFileBase file)
        {
            //List<GrandLodgeTexasCSV> importRows = new List<GrandLodgeTexasCSV>();
            List<LodgeMember> importRows = new List<LodgeMember>();
            string line = String.Empty; string[] values;

            StreamReader sr = new StreamReader(file.InputStream);
            try
            {
                var firstline = sr.ReadLine();
                while ((line = sr.ReadLine()) != null)
                {
                    try
                    {
                        values = line.Split(',');
                        //GrandLodgeTexasCSV importRow = new GrandLodgeTexasCSV();
                        LodgeMember lodgeMember = new LodgeMember();
                        lodgeMember.MemberNumber = int.Parse(values[0]);
                        lodgeMember.LastName = values[1];
                        lodgeMember.FirstName = values[2];
                        lodgeMember.MiddleName = values[3];
                        lodgeMember.SuffixName = values[4];
                        lodgeMember.Birthdate = values[5];
                        lodgeMember.Joined = values[6];
                        lodgeMember.MemberStatus = StatustoRefCode(values[7]);
                        lodgeMember.MemberStatusText = values[7];
                        lodgeMember.LastUpdated = values[8];
                        lodgeMember.StreetAddress = values[9] + " " + values[10];
                        lodgeMember.City = values[11];
                        lodgeMember.State = values[12];
                        lodgeMember.Zip = values[13];
                        //importRow.AddressType = values[14];
                        lodgeMember.HomePhone = values[15];
                        lodgeMember.WorkPhone = values[16];
                        //importRow.Fax = values[17];
                        lodgeMember.MobilePhone = values[18];
                        lodgeMember.PersonalEmail = values[19];
                        lodgeMember.BusinessEmail = values[20];
                        lodgeMember.Initiated = values[22];
                        lodgeMember.Passed = values[23];
                        lodgeMember.Raised = values[24];
                        //importRow.MemberOrCandidate = values[25];
                        importRows.Add(lodgeMember);
                    }
                    catch (Exception ex)
                    {
                        importRows.Add(new LodgeMember() { LastName = ex.Message });
                    }
                }
            }
            catch (Exception ex)
            {
                importRows.Add(new LodgeMember() { LastName = ex.Message });
            }
            return importRows;
        }
        public static LodgeMember GetMember(int id, string filename)
        {
            var lodgeMember = new LodgeMember();
            try
            {
                XmlDocument xdoc = new XmlDocument();
                xdoc.Load(filename);
                var memberNode = xdoc.SelectSingleNode("//Members/Member[@MasonId='" + id + "']");
                string personId = memberNode.Attributes["PersonId"].InnerText;
                lodgeMember.MemberNumber = id;
                lodgeMember.Joined = memberNode.Attributes["Joined"].InnerText;
                lodgeMember.Initiated = memberNode.Attributes["Initiated"].InnerText;
                lodgeMember.Passed = memberNode.Attributes["Passed"].InnerText;
                lodgeMember.Raised = memberNode.Attributes["Raised"].InnerText;
                lodgeMember.MemberStatus = memberNode.Attributes["Status"].InnerText;
                lodgeMember.LodgeStatus = memberNode.Attributes["LodgeStatus"].InnerText;
                lodgeMember.LastUpdated = memberNode.Attributes["LastUpdated"].InnerText;
                lodgeMember.LastReinstated = memberNode.Attributes["LastReinstated"].InnerText;

                XmlNode pictureNode = memberNode.SelectSingleNode("Picture");
                if (pictureNode != null)
                    lodgeMember.Picture = pictureNode.InnerText;

                var personNode = xdoc.SelectSingleNode("//People/Person[@PersonId='" + personId + "']");
                lodgeMember.FirstName = personNode.Attributes["FirstName"].InnerText;
                lodgeMember.LastName = personNode.Attributes["LastName"].InnerText;
                lodgeMember.NickName = personNode.Attributes["NickName"].InnerText;
                lodgeMember.MiddleName = personNode.Attributes["MiddleName"].InnerText;
                lodgeMember.FullName = lodgeMember.FirstName + (lodgeMember.MiddleName == "" ? " " : " " + lodgeMember.MiddleName + " ") + lodgeMember.LastName;
                lodgeMember.Birthdate = personNode.Attributes["Birthdate"].InnerText;
                lodgeMember.BirthLocation = personNode.Attributes["BirthLocation"].InnerText;
                lodgeMember.Died = personNode.Attributes["Died"].InnerText;

                XmlNode addressnode = personNode["Addresses"].SelectSingleNode("Address[last()]");
                lodgeMember.StreetAddress = addressnode.Attributes["StreetAddress"].InnerText;
                lodgeMember.City = addressnode.Attributes["City"].InnerText;
                lodgeMember.State = addressnode.Attributes["State"].InnerText;
                lodgeMember.Zip = addressnode.Attributes["Zip"].InnerText;

                XmlNode commDevicesNode = personNode.SelectSingleNode("CommDevices");
                lodgeMember.HomePhone = commDevicesNode.Attributes["HomePhone"].InnerText;
                lodgeMember.PersonalEmail = commDevicesNode.Attributes["PersonalEmail"].InnerText;
                lodgeMember.MobilePhone = commDevicesNode.Attributes["MobilePhone"].InnerText;
                lodgeMember.WorkPhone = commDevicesNode.Attributes["WorkPhone"].InnerText;
                lodgeMember.BusinessEmail = commDevicesNode.Attributes["BusinessEmail"].InnerText;
            }
            catch (Exception ex) {
                lodgeMember.FullName = ex.Message;
            }
            return lodgeMember;
        }
 public static LodgeMember GetOfficer(string masonicYear, string chair, string xmlFileName)
 {
     var member = new LodgeMember();
     try
     {
         XmlDocument xdoc = new XmlDocument();
         xdoc.Load(xmlFileName);
         XmlNode OfficerNode = xdoc.SelectSingleNode("//Officers/Year[@MasonicYear='" + masonicYear + "']/" + chair);
         if (OfficerNode != null)
         {
             member.MemberNumber = int.Parse(OfficerNode.InnerText);
             string personId = xdoc.SelectSingleNode("//Members/Member[@MasonId='" + member.MemberNumber + "']").Attributes["PersonId"].InnerText;
             XmlNode PersonNode = xdoc.SelectSingleNode("//People/Person[@PersonId='" + personId + "']");
             member.FirstName = PersonNode["FirstName"].InnerText;
             member.MiddleName = PersonNode["MiddleName"].InnerText;
             member.LastName = PersonNode["LastName"].InnerText;
             member.FullName = member.FirstName + (member.MiddleName == "" ? " " : " " + member.MiddleName + " ") + member.LastName;
         }
     }
     catch (Exception ex) { member.FullName = ex.Message; }
     return member;
 }
        public static string MemberAddUpdateRow(LodgeMember lodgeMember, XmlDocument xdoc)
        {
            string success = "ok";
            try
            {
                XmlNode memberNode = xdoc.SelectSingleNode("//Members//Member[@MasonId='" + lodgeMember.MemberNumber + "']");
                XmlNode person = null;
                string[] goodCodes = { "MBA", "MBC", "MBD", "MBG", "MBH", "MBI", "MBJ", "LIF" };
                if (memberNode != null)
                {
                    #region update
                    memberNode.Attributes["Initiated"].InnerText = lodgeMember.Initiated;
                    memberNode.Attributes["Passed"].InnerText = lodgeMember.Passed;
                    memberNode.Attributes["Raised"].InnerText = lodgeMember.Raised;
                    memberNode.Attributes["LastReinstated"].InnerText = lodgeMember.LastReinstated;
                    memberNode.Attributes["Joined"].InnerText = lodgeMember.Joined;

                    memberNode.Attributes["Status"].InnerText = lodgeMember.MemberStatus;
                    memberNode.Attributes["LodgeStatus"].InnerText = lodgeMember.LodgeStatus;
                    memberNode.Attributes["LastUpdated"].InnerText = DateTime.Today.ToShortDateString();

                    var personId = memberNode.Attributes["PersonId"].InnerText;
                    person = xdoc.SelectSingleNode("//People//Person[@PersonId='" + personId + "']");
                    person.Attributes["FirstName"].InnerText = lodgeMember.FirstName;
                    person.Attributes["LastName"].InnerText = lodgeMember.LastName;
                    person.Attributes["MiddleName"].InnerText = lodgeMember.MiddleName;
                    person.Attributes["NickName"].InnerText = lodgeMember.NickName;
                    person.Attributes["Birthdate"].InnerText = lodgeMember.Birthdate;
                    person.Attributes["BirthLocation"].InnerText = lodgeMember.BirthLocation;
                    person.Attributes["Died"].InnerText = lodgeMember.Died;

                    XmlNode addressnode = person["Addresses"].SelectSingleNode("Address[last()]");
                    addressnode.Attributes["StreetAddress"].InnerText = lodgeMember.StreetAddress;
                    addressnode.Attributes["City"].InnerText = lodgeMember.City;
                    addressnode.Attributes["State"].InnerText = lodgeMember.State;
                    addressnode.Attributes["Zip"].InnerText = lodgeMember.Zip;

                    XmlNode CommDevices = person.SelectSingleNode("CommDevices");
                    CommDevices.Attributes["HomePhone"].InnerText = lodgeMember.HomePhone;
                    CommDevices.Attributes["MobilePhone"].InnerText = lodgeMember.MobilePhone;
                    CommDevices.Attributes["WorkPhone"].InnerText = lodgeMember.WorkPhone;
                    CommDevices.Attributes["BusinessEmail"].InnerText = lodgeMember.BusinessEmail;
                    CommDevices.Attributes["PersonalEmail"].InnerText = lodgeMember.PersonalEmail;
                    success = "updated";
                    #endregion
                }
                else
                {
                    string personGuid = Guid.NewGuid().ToString();
                    memberNode = xdoc.CreateElement("Member");
                    XmlAttribute CurrentStatus = xdoc.CreateAttribute("Status"); CurrentStatus.InnerText = lodgeMember.MemberStatus; memberNode.Attributes.Append(CurrentStatus);
                    XmlAttribute LodgeStatus = xdoc.CreateAttribute("LodgeStatus"); LodgeStatus.InnerText = goodCodes.Contains(lodgeMember.MemberStatus) ? "ACT" : "INA"; memberNode.Attributes.Append(LodgeStatus);
                    XmlAttribute MasonId = xdoc.CreateAttribute("MasonId"); MasonId.Value = lodgeMember.MemberNumber.ToString(); memberNode.Attributes.Append(MasonId);
                    XmlAttribute PersonId2 = xdoc.CreateAttribute("PersonId"); PersonId2.Value = personGuid; memberNode.Attributes.Append(PersonId2);
                    XmlAttribute Joined = xdoc.CreateAttribute("Joined"); Joined.InnerText = lodgeMember.Joined; memberNode.Attributes.Append(Joined);
                    XmlAttribute Initiated = xdoc.CreateAttribute("Initiated"); Initiated.InnerText = lodgeMember.Initiated; memberNode.Attributes.Append(Initiated);
                    XmlAttribute Passed = xdoc.CreateAttribute("Passed"); Passed.InnerText = lodgeMember.Passed; memberNode.Attributes.Append(Passed);
                    XmlAttribute Raised = xdoc.CreateAttribute("Raised"); Raised.InnerText = lodgeMember.Raised; memberNode.Attributes.Append(Raised);
                    XmlAttribute LastReinstated = xdoc.CreateAttribute("LastReinstated"); LastReinstated.InnerText = lodgeMember.Raised; memberNode.Attributes.Append(LastReinstated);
                    XmlAttribute LastUpdated = xdoc.CreateAttribute("LastUpdated"); LastUpdated.InnerText = lodgeMember.LastUpdated; memberNode.Attributes.Append(LastUpdated);
                    XmlNode MemberDetails = xdoc.CreateElement("MemberDetails"); memberNode.AppendChild(MemberDetails);

                    XmlNode members = xdoc.SelectSingleNode("//Members");
                    members.AppendChild(memberNode);

                    person = xdoc.CreateElement("Person");
                    XmlAttribute PersonId = xdoc.CreateAttribute("PersonId"); PersonId.Value = personGuid; person.Attributes.Append(PersonId);
                    XmlAttribute firstName = xdoc.CreateAttribute("FirstName"); firstName.InnerText = lodgeMember.FirstName; person.Attributes.Append(firstName);
                    XmlAttribute lastName = xdoc.CreateAttribute("LastName"); lastName.InnerText = lodgeMember.LastName; person.Attributes.Append(lastName);
                    XmlAttribute MiddleName = xdoc.CreateAttribute("MiddleName"); MiddleName.InnerText = lodgeMember.MiddleName; person.Attributes.Append(MiddleName);
                    XmlAttribute NickName = xdoc.CreateAttribute("NickName"); NickName.InnerText = lodgeMember.NickName; person.Attributes.Append(NickName);
                    XmlAttribute Birthdate = xdoc.CreateAttribute("Birthdate"); Birthdate.InnerText = lodgeMember.Birthdate; person.Attributes.Append(Birthdate);
                    XmlAttribute BirthLocation = xdoc.CreateAttribute("BirthLocation"); BirthLocation.InnerText = lodgeMember.BirthLocation; person.Attributes.Append(BirthLocation);
                    XmlAttribute Died = xdoc.CreateAttribute("Died"); Died.InnerText = lodgeMember.Died; person.Attributes.Append(Died);

                    XmlNode CommDevices = xdoc.CreateElement("CommDevices");
                    XmlAttribute HomePhone = xdoc.CreateAttribute("HomePhone"); HomePhone.InnerText = lodgeMember.HomePhone; CommDevices.Attributes.Append(HomePhone);
                    XmlAttribute WorkPhone = xdoc.CreateAttribute("WorkPhone"); WorkPhone.InnerText = lodgeMember.WorkPhone; CommDevices.Attributes.Append(WorkPhone);
                    XmlAttribute MobilePhone = xdoc.CreateAttribute("MobilePhone"); MobilePhone.InnerText = lodgeMember.MobilePhone; CommDevices.Attributes.Append(MobilePhone);
                    XmlAttribute PersonalEmail = xdoc.CreateAttribute("PersonalEmail"); PersonalEmail.InnerText = lodgeMember.PersonalEmail; CommDevices.Attributes.Append(PersonalEmail);
                    XmlAttribute BusinessEmail = xdoc.CreateAttribute("BusinessEmail"); BusinessEmail.InnerText = lodgeMember.HomePhone; CommDevices.Attributes.Append(BusinessEmail);
                    person.AppendChild(CommDevices);

                    XmlNode Addresses = xdoc.CreateElement("Addresses");
                    XmlNode Address = xdoc.CreateElement("Address");
                    XmlAttribute MoveIn = xdoc.CreateAttribute("MoveIn"); MoveIn.InnerText = lodgeMember.LastUpdated; Address.Attributes.Append(MoveIn);
                    XmlAttribute StreetAddress = xdoc.CreateAttribute("StreetAddress"); StreetAddress.InnerText = lodgeMember.StreetAddress; Address.Attributes.Append(StreetAddress);
                    XmlAttribute City = xdoc.CreateAttribute("City"); City.InnerText = lodgeMember.City; Address.Attributes.Append(City);
                    XmlAttribute State = xdoc.CreateAttribute("State"); State.InnerText = lodgeMember.State; Address.Attributes.Append(State);
                    XmlAttribute Zip = xdoc.CreateAttribute("Zip"); Zip.InnerText = lodgeMember.Zip; Address.Attributes.Append(Zip);
                    Addresses.AppendChild(Address);
                    person.AppendChild(Addresses);

                    XmlNode people = xdoc.SelectSingleNode("//People");
                    people.AppendChild(person);

                    success = "added";
                }
            }
            catch (Exception ex)
            {
                success = ex.Message;
            }
            return success;
        }
 public ActionResult xxMemberDetails(LodgeMember model)
 {
     ActionResult rtn = View(model);
     if (ModelState.IsValid)
     {
         try
         {
             string lodgeFileName = Server.MapPath("\\App_Data\\") + MasonMasterData.GetUserProfile(User.Identity.Name).DatabaseName;
             MemberDataXml.MemberAddUpdate(model, lodgeFileName);
             if (Request.Form["exitMode"].Length > 30)
             {
                 rtn = RedirectToAction("MemberAccomplishments", new { masonId = model.MemberNumber, memberDetailId = Request.Form["exitMode"] });
             }
             else
             {
                 switch (Request.Form["exitMode"])
                 {
                     case "return":
                         if (Session["lodgeMemberList"] != null)
                         rtn = RedirectToAction("MemberDetails", new { Id = model.MemberNumber });
                         break;
                     case "continue":
                         {
                             if (Session["lodgeMemberList"] != null)
                             {
                                 List<LodgeMember> ss = (List<LodgeMember>)Session["lodgeMemberList"];
                                 var EditedMember = ss.Where(em => em.MemberNumber == model.MemberNumber).First();
                                 EditedMember = model;
                             }
                         }
                         rtn = RedirectToAction("MemberList");
                         break;
                     case "details":
                         rtn = RedirectToAction("MemberAccomplishments", new { masonId = model.MemberNumber });
                         break;
                     case "addressess":
                         rtn = RedirectToAction("Address", "Person", new { id = model.MemberNumber });
                         break;
                     case "employment":
                         rtn = RedirectToAction("Employment", "Person", new { id = model.MemberNumber });
                         break;
                     case "family":
                         rtn = RedirectToAction("Geneology", "Person", new { id = model.MemberNumber });
                         break;
                     default:
                         break;
                 }
             }
         }
         catch (Exception e)
         {
             ModelState.AddModelError("", e.Message);
         }
     }
     return rtn;
 }
        public static List<LodgeMember> GetActiveMasons(string xmlFileName)
        {
            var lodgeList = new List<LodgeMember>();
            try
            {
                XmlDocument xDoc = new XmlDocument();
                xDoc.Load(xmlFileName);
                XmlNodeList members = xDoc.SelectNodes("//Members/Member[@LodgeStatus='ACT']");

                foreach (XmlNode memberNode in members)
                {
                    var lodgeMember = new LodgeMember();
                    lodgeMember.MemberNumber = int.Parse(memberNode.Attributes["MasonId"].InnerText);
                    lodgeMember.MemberStatusText = xDoc.SelectSingleNode("//Refs/refItem[@refCode='" + memberNode.Attributes["Status"].InnerText + "']").Attributes["refDescription"].InnerText;
                    lodgeMember.MemberStatus = memberNode.Attributes["Status"].InnerText;
                    lodgeMember.Raised = memberNode.Attributes["Raised"].InnerText;

                    string personId = memberNode.Attributes["PersonId"].Value;
                    XmlNode personNode = xDoc.SelectSingleNode("//People//Person[@PersonId='" + personId + "']");
                    lodgeMember.FirstName = personNode.Attributes["FirstName"].InnerText;
                    lodgeMember.MiddleName = personNode.Attributes["MiddleName"].InnerText;
                    lodgeMember.LastName = personNode.Attributes["LastName"].InnerText;
                    lodgeMember.FullName = lodgeMember.FirstName + (lodgeMember.MiddleName == "" ? " " : " " + lodgeMember.MiddleName + " ") + lodgeMember.LastName;

                    lodgeList.Add(lodgeMember);
                }
                if (lodgeList.Count == 0)
                    lodgeList.Add(new LodgeMember() { FullName = "No records found" });
            }
            catch (Exception ex)
            {
                lodgeList.Add(new LodgeMember() { FullName = ex.Message });
            }
            return lodgeList;
        }
 public string MemberSave(LodgeMember lodgeMember)
 {
     string success = "ono";
     string lodgeFileName = Server.MapPath("\\App_Data\\") + MasonMasterData.GetUserProfile(User.Identity.Name).DatabaseName;
     success = MemberDataXml.MemberAddUpdate(lodgeMember, lodgeFileName);
     Session["lodgeMemberList"] = null;
     return success;
 }
        public static List<LodgeMember> GetFiftyYearExempt(string xmlFileName)
        {
            var memberList = new List<LodgeMember>();
            try
            {
                DateTime today = DateTime.Today;
                XmlDocument xDoc = new XmlDocument();
                xDoc.Load(xmlFileName);
                XmlNodeList members = xDoc.SelectNodes("//Members/Member");
                string currentStatus = "";
                //XmlNode fiftyYearNode;
                DateTime raised;
                TimeSpan t1;
                string[] desiredStatuses = new[] { "MBA", "MBC", "MBD", "MBG", "MBH", "MBI", "MBE", "MBJ", "LIF" };
                //{ "Active", "Endowed Member", "Elected", "Life Member", "Entered Apprentice", "Fellowcraft", "Life & Endowed Mbr", "Petition Read" };
                foreach (XmlNode memberNode in members)
                {
                    currentStatus = memberNode.Attributes["Status"].InnerText;
                    if (desiredStatuses.Contains(memberNode.Attributes["Status"].InnerText))
                    {
                        DateTime.TryParse(memberNode["Raised"].InnerText, out raised);
                        if (raised != DateTime.MinValue)
                        {
                            t1 = today - raised;
                            var totalyears = t1.TotalDays / 365.2425;
                            if (totalyears >= 50)
                            {
                                //XmlNodeList MemberDetials = memberNode.SelectNodes("MemberDetails");
                                //foreach (XmlNode MemberDetail in MemberDetials)
                                //{
                                //fiftyYearNode = MemberDetail.SelectSingleNode("MemberDetail[@Type='FIF']");
                                //if (fiftyYearNode != null)
                                //{

                                var lodgeMember = new LodgeMember();
                                //lodgeMember.MemberStatus = memberNode.SelectSingleNode("CurrentStatus").InnerText;
                                lodgeMember.LodgeStatus = memberNode.SelectSingleNode("LodgeStatus").InnerText;
                                lodgeMember.MemberNumber = int.Parse(memberNode.Attributes["MasonId"].InnerText);
                                lodgeMember.Raised = memberNode.SelectSingleNode("Raised").InnerText;
                                lodgeMember.MemberStatusText = xDoc.SelectSingleNode("//Refs/refItem[@refCode='" + memberNode["CurrentStatus"].InnerText + "']").Attributes["refDescription"].InnerText;

                                string personId = memberNode.Attributes["PersonId"].Value;
                                XmlNode personNode = xDoc.SelectSingleNode("//People//Person[@PersonId='" + personId + "']");
                                lodgeMember.FirstName = personNode.Attributes["FirstName"].InnerText;
                                lodgeMember.MiddleName = personNode.Attributes["MiddleName"].InnerText;
                                lodgeMember.LastName = personNode.Attributes["LastName"].InnerText;
                                lodgeMember.FullName = lodgeMember.FirstName + (lodgeMember.MiddleName == "" ? " " : " " + lodgeMember.MiddleName + " ") + lodgeMember.LastName;
                                lodgeMember.Birthdate = personNode.Attributes["Birthdate"].InnerText;

                                memberList.Add(lodgeMember);
                            }
                        }
                    }
                }
                if (memberList.Count == 0)
                    memberList.Add(new LodgeMember() { FullName = "No records found" });
            }
            catch (Exception ex)
            {
                memberList.Add(new LodgeMember() { FullName = ex.Message });
            }
            return memberList;
        }
 public static List<LodgeMember> GetOfficersList(string masonicYear, string xmlFileName)
 {
     var memberList = new List<LodgeMember>();
     try
     {
         XmlDocument xDoc = new XmlDocument();
         xDoc.Load(xmlFileName);
         XmlNode officersNode = xDoc.SelectSingleNode("//Officers/Year[@MasonicYear='" + masonicYear + "']");
         if (officersNode != null)
         {
             XmlNode memberNode;
             foreach (XmlNode officerNode in officersNode)
             {
                 var lodgeMember = new LodgeMember();
                 lodgeMember.Birthdate = xDoc.SelectSingleNode("//Refs/refItem[@refCode='" + officerNode.Name + "']").Attributes["refDescription"].InnerText;
                 memberNode = xDoc.SelectSingleNode("//Members/Member[@MasonId='" + officerNode.Attributes["MasonId"].InnerText + "']");
                 lodgeMember.MemberStatusText = xDoc.SelectSingleNode("//Refs/refItem[@refCode='" + memberNode.Attributes["Status"].InnerText + "']").Attributes["refDescription"].InnerText;
                 lodgeMember.MemberNumber = int.Parse(officerNode.Attributes["MasonId"].InnerText);
                 string personId = memberNode.Attributes["PersonId"].Value;
                 XmlNode personNode = xDoc.SelectSingleNode("//People//Person[@PersonId='" + personId + "']");
                 lodgeMember.FirstName = personNode.Attributes["FirstName"].InnerText;
                 lodgeMember.MiddleName = personNode.Attributes["MiddleName"].InnerText;
                 lodgeMember.LastName = personNode.Attributes["LastName"].InnerText;
                 lodgeMember.FullName = lodgeMember.FirstName + (lodgeMember.MiddleName == "" ? " " : " " + lodgeMember.MiddleName + " ") + lodgeMember.LastName;
                 memberList.Add(lodgeMember);
             }
         }
         if (memberList.Count == 0)
             memberList.Add(new LodgeMember() { FullName = "No records found" });
     }
     catch (Exception ex)
     {
         memberList.Add(new LodgeMember() { FullName = ex.Message });
     }
     return memberList;
 }
        public static List<LodgeMember> GetMemberList(string xmlFileName)
        {
            var lodgeList = new List<LodgeMember>();
            try
            {
                XmlDocument xDoc = new XmlDocument();
                xDoc.Load(xmlFileName);
                XmlNodeList members = xDoc.SelectNodes("//Members/Member");
                string currentStatus = "";
                string[] desiredStatuses = new[] { "MBA", "MBC", "MBD", "MBG", "MBH", "MBI", "MBE", "MBJ", "LIF" };
                //{ "Active", "Endowed Member", "Elected", "Life Member", "Entered Apprentice", "Fellowcraft", "Life & Endowed Mbr", "Petition Read" };
                foreach (XmlNode memberNode in members)
                {
                    currentStatus = memberNode.Attributes["Status"].InnerText;
                    if (desiredStatuses.Contains(currentStatus))
                    {
                        var lodgeMember = new LodgeMember();
                        //lodgeMember.MemberStatus = memberNode.SelectSingleNode("CurrentStatus").InnerText;
                        lodgeMember.MemberNumber = int.Parse(memberNode.Attributes["MasonId"].InnerText);
                        lodgeMember.Raised = memberNode.Attributes["Raised"].InnerText;
                        lodgeMember.MemberStatusText = xDoc.SelectSingleNode("//Refs/refItem[@refCode='" + memberNode.Attributes["Status"].InnerText + "']").Attributes["refDescription"].InnerText;

                        string personId = memberNode.Attributes["PersonId"].Value;
                        XmlNode personNode = xDoc.SelectSingleNode("//People//Person[@PersonId='" + personId + "']");
                        lodgeMember.FirstName = personNode.Attributes["FirstName"].InnerText;
                        lodgeMember.MiddleName = personNode.Attributes["MiddleName"].InnerText;
                        lodgeMember.LastName = personNode.Attributes["LastName"].InnerText;
                        lodgeMember.FullName = lodgeMember.FirstName + (lodgeMember.MiddleName == "" ? " " : " " + lodgeMember.MiddleName + " ") + lodgeMember.LastName;
                        lodgeMember.Birthdate = personNode.Attributes["Birthdate"].InnerText;

                        XmlNode addressnode = personNode["Addresses"].SelectSingleNode("Address[last()]");
                        lodgeMember.StreetAddress = addressnode.Attributes["StreetAddress"].InnerText;
                        lodgeMember.City = addressnode.Attributes["City"].InnerText;
                        lodgeMember.State = addressnode.Attributes["State"].InnerText;
                        lodgeMember.Zip = addressnode.Attributes["Zip"].InnerText;

                        lodgeMember.HomePhone = personNode["CommDevices"].Attributes["HomePhone"].InnerText;
                        lodgeMember.MobilePhone = personNode["CommDevices"].Attributes["MobilePhone"].InnerText;
                        lodgeMember.WorkPhone = personNode["CommDevices"].Attributes["WorkPhone"].InnerText;
                        lodgeMember.BusinessEmail = personNode["CommDevices"].Attributes["BusinessEmail"].InnerText;
                        lodgeMember.PersonalEmail = personNode["CommDevices"].Attributes["PersonalEmail"].InnerText;

                        lodgeList.Add(lodgeMember);
                    }
                }
                if (lodgeList.Count == 0)
                    lodgeList.Add(new LodgeMember() { FullName = "No records found" });
            }
            catch (Exception ex)
            {
                lodgeList.Add(new LodgeMember() { FullName = ex.Message });
            }
            return lodgeList;
        }
        public static List<LodgeMember> GetDateByMonth(string sortDate, string xmlFileName)
        {
            var lodgeList = new List<LodgeMember>();
            try
            {
                XmlDocument xDoc = new XmlDocument();
                xDoc.Load(xmlFileName);
                XmlNodeList members = xDoc.SelectNodes("//Members/Member");
                string currentStatus = "";
                string[] desiredStatuses = new[] { "MBA", "MBC", "MBD", "MBG", "MBH", "MBI", "MBE", "MBJ", "LIF" };
                //{ "Active", "Endowed Member", "Elected", "Life Member", "Entered Apprentice", "Fellowcraft", "Life & Endowed Mbr", "Petition Read" };
                DateTime raised;
                foreach (XmlNode memberNode in members)
                {
                    currentStatus = memberNode.Attributes["Status"].InnerText;
                    if (desiredStatuses.Contains(currentStatus))
                    {
                        var lodgeMember = new LodgeMember();
                        //lodgeMember.MemberStatus = memberNode.SelectSingleNode("CurrentStatus").InnerText;
                        lodgeMember.MemberNumber = int.Parse(memberNode.Attributes["MasonId"].InnerText);
                        lodgeMember.Raised = memberNode.Attributes["Raised"].InnerText;
                        lodgeMember.MemberStatusText = xDoc.SelectSingleNode("//Refs/refItem[@refCode='" + memberNode.Attributes["Status"].InnerText + "']").Attributes["refDescription"].InnerText;

                        string personId = memberNode.Attributes["PersonId"].Value;
                        XmlNode personNode = xDoc.SelectSingleNode("//People//Person[@PersonId='" + personId + "']");
                        lodgeMember.FirstName = personNode.Attributes["FirstName"].InnerText;
                        lodgeMember.MiddleName = personNode.Attributes["MiddleName"].InnerText;
                        lodgeMember.LastName = personNode.Attributes["LastName"].InnerText;
                        lodgeMember.FullName = lodgeMember.FirstName + (lodgeMember.MiddleName == "" ? " " : " " + lodgeMember.MiddleName + " ") + lodgeMember.LastName;
                        lodgeMember.Birthdate = personNode.Attributes["Birthdate"].InnerText;
                        try
                        {
                            if (sortDate == "Birthday")
                                lodgeMember.SortMonth = (Convert.ToDateTime(lodgeMember.Birthdate)).Month;
                            else
                            {
                                DateTime.TryParse(memberNode.Attributes["Raised"].InnerText, out raised);
                                if (raised != DateTime.MinValue)
                                    lodgeMember.SortMonth = (Convert.ToDateTime(lodgeMember.Raised)).Month;
                                else
                                    lodgeMember.SortMonth = 99;
                            }
                        }
                        catch (FormatException)
                        {
                            lodgeMember.SortMonth = 99;
                        }
                        catch (Exception ex)
                        {
                            lodgeMember.FirstName = ex.Message;
                        }
                        lodgeList.Add(lodgeMember);
                    }
                }
                if (lodgeList.Count == 0)
                    lodgeList.Add(new LodgeMember() { FullName = "No records found" });
            }
            catch (Exception ex)
            {
                lodgeList.Add(new LodgeMember() { FullName = ex.Message });
            }
            return lodgeList;
        }