public async Task AddActivityRecordMember(ActivityRecordMemberViewModel activityRecordMember) { var queryFactory = _dataAccess.GetQueryFactory(_connectionString); var activityQuery = queryFactory.Query(TableConstants.ActivityRecordMemberTable); var id = await activityQuery.InsertGetIdAsync <int>(new Dictionary <string, object> { { ActivityRecordMemberConstants.Name, activityRecordMember.MyName }, { ActivityRecordMemberConstants.Surname, activityRecordMember.MySurname }, { ActivityRecordMemberConstants.Rut, activityRecordMember.MyRut }, { ActivityRecordMemberConstants.Email, activityRecordMember.MyEmail }, { ActivityRecordMemberConstants.ActivityRecordId, activityRecordMember.MyActivityRecordId }, { ActivityRecordMemberConstants.IsBminingMember, activityRecordMember.IsBminingMember }, { ActivityRecordMemberConstants.BminingId, activityRecordMember.MyBminingId }, { ActivityRecordMemberConstants.Enterprise, activityRecordMember.MyEnterprise } }); activityRecordMember.MyId = id; }
public async Task <ActivityRecordViewModel> GetActivityRecord(int id) { var queryFactory = _dataAccess.GetQueryFactory(_connectionString); var activityQuery = queryFactory.Query(TableConstants.ActivityRecordTable); var membersQuery = queryFactory.Query(TableConstants.ActivityRecordMemberTable); var commitmentQuery = queryFactory.Query(TableConstants.ActivityRecordCommitmentTable); var projectQuery = queryFactory.Query(TableConstants.ProjectTable); var item = (await activityQuery.Where(ActivityRecordConstants.Id, id) .Include(TableConstants.ProjectTable, projectQuery, ProjectConstants.ProjectId, ActivityRecordConstants.ProjectId) .IncludeMany(TableConstants.ActivityRecordMemberTable, membersQuery, $"{ActivityRecordMemberConstants.ActivityRecordId}", $"{ActivityRecordConstants.Id}") .IncludeMany(TableConstants.ActivityRecordCommitmentTable, commitmentQuery, $"{ActivityRecordCommitmentConstants.ActivityRecordId}", $"{ActivityRecordConstants.Id}").GetAsync()) .Cast <IDictionary <string, object> >().ToList().First(); var project = (IDictionary <string, object>)item[TableConstants.ProjectTable]; var activityRecord = new ActivityRecordViewModel { MyId = (int)item[ActivityRecordConstants.Id], MyDate = (DateTime)item[ActivityRecordConstants.Date], MyDurationHours = (double?)item[ActivityRecordConstants.DurationHours], MyNotes = (string)item[ActivityRecordConstants.Notes], MyPlace = (string)item[ActivityRecordConstants.Place], MyTitle = (string)item[ActivityRecordConstants.Title], MySecurityReflection = (string)item[ActivityRecordConstants.SecurityReflection], MyProjectName = (string)project[ProjectConstants.ProjectName], MyProjectId = (int)project[ProjectConstants.ProjectId], MyProjectCode = (string)project[ProjectConstants.ProjectCode] }; var members = (IEnumerable <IDictionary <string, object> >)item[TableConstants.ActivityRecordMemberTable]; foreach (var member in members) { var activityRecordMember = new ActivityRecordMemberViewModel { MyId = (int)member[ActivityRecordMemberConstants.Id], MyEmail = (string)member[ActivityRecordMemberConstants.Email], MyRut = (string)member[ActivityRecordMemberConstants.Rut], MyName = (string)member[ActivityRecordMemberConstants.Name], MySurname = (string)member[ActivityRecordMemberConstants.Surname], MyEnterprise = (string)member[ActivityRecordMemberConstants.Enterprise], MyBminingId = (int?)member[ActivityRecordMemberConstants.BminingId], IsBminingMember = (ulong)member[ActivityRecordMemberConstants.IsBminingMember] == 1, }; activityRecord.OurMembers.Add(activityRecordMember); } var commitments = (IEnumerable <IDictionary <string, object> >)item[TableConstants.ActivityRecordCommitmentTable]; foreach (var commitment in commitments) { var activityRecordCommitment = new ActivityRecordCommitmentViewModel { MyId = (int)commitment[ActivityRecordCommitmentConstants.Id], MyResponsible = (string)commitment[ActivityRecordCommitmentConstants.Responsible], MyCommitment = (string)commitment[ActivityRecordCommitmentConstants.Commitment], MyCommitmentDate = (DateTime)commitment[ActivityRecordCommitmentConstants.CommitmentDate], MyStatus = (ActivityRecordStatusEnum)commitment[ActivityRecordCommitmentConstants.ActivityRecordStatus] }; activityRecord.OurCommitments.Add(activityRecordCommitment); } return(activityRecord); }