public PersonLayout GetByAspNetUserId(string AspNetUserId) { PersonLayout pLayout = null; TimecardEntryBase teb = null; List <ProjectBase> projects = null; DataProvider.ExecuteCmd(GetConnection, "dbo.Person_SelectByAspNetUserId", inputParamMapper : delegate(SqlParameterCollection paramCollection) { paramCollection.AddWithValue("@AspNetUserId", AspNetUserId); } , map : delegate(IDataReader reader, short set) { switch (set) { case 0: pLayout = new PersonLayout(); int ord = 0; pLayout.Id = reader.GetSafeInt32(ord++); pLayout.FirstName = reader.GetSafeString(ord++); pLayout.MiddleName = reader.GetSafeString(ord++); pLayout.LastName = reader.GetSafeString(ord++); pLayout.PhoneNumber = reader.GetSafeString(ord++); pLayout.Email = reader.GetSafeString(ord++); pLayout.JobTitle = reader.GetSafeString(ord++); break; case 1: ProjectBase pb = MapProjectList(reader); if (projects == null) { projects = new List <ProjectBase>(); } projects.Add(pb); break; case 2: teb = new TimecardEntryBase(); int ordinal = 0; teb.Id = reader.GetSafeInt32(ordinal++); teb.ProjectId = reader.GetSafeInt32(ordinal++); teb.StartDateTimeUtc = reader.GetSafeDateTimeNullable(ordinal++); teb.EndDateTimeUtc = reader.GetSafeDateTimeNullable(ordinal++); break; } } ); pLayout.Projects = projects; pLayout.TimecardEntry = teb; return(pLayout); }
protected T DecorateViewModel <T>(T model) where T : BaseViewModel { //the below method checks if the user is logged in when it gets their UserId string aspNetUserId = UserService.GetCurrentUserId(); if (!string.IsNullOrEmpty(aspNetUserId)) { model.IsLoggedIn = true; IPersonService _personService = new PersonService(); PersonLayout person = _personService.GetByAspNetUserId(aspNetUserId); model.FirstName = person.FirstName; model.MiddleName = person.MiddleName; model.LastName = person.LastName; model.UserPhoneNumber = person.PhoneNumber; model.UserEmail = person.Email; model.Id = person.Id; model.projects = person.Projects; model.TimecardEntry = person.TimecardEntry; model.Roles = UserService.GetRoles(); } return(model); }