public override async System.Threading.Tasks.Task <SyncResult> Receive(Guid token) { try { ProjectLevelCode.Refresh(); using (HttpClient client = new HttpClient()) { client.Init(token); var query = HttpUtility.ParseQueryString(string.Empty); query["contactId"] = LoginUser.CurrUser.MatchId.ToString(); query["companyId"] = CompanyId.ToString(); HttpResponseMessage response = await client.GetAsync($"api/ProjectLevelCode?{query.ToString()}"); if (response.IsSuccessStatusCode) { UpdateStatus(EnumTableSyncStatus.Receiving); List <ProjectLevelCode> list = await response.Content.ReadAsAsync <List <ProjectLevelCode> >(); list.ForEach(x => { string sql = $"insert ProjectLevelCode(ProjectId, CompanyId, Level1Id, Level2Id, Level3Id, Level4Id, InSync) " + $"values({x.ProjectId}, {x.CompanyId}, {StrEx.ValueOrNull(x.Level1Id)}, {StrEx.ValueOrNull(x.Level2Id)}, {StrEx.ValueOrNull(x.Level3Id)}, {StrEx.ValueOrNull(x.Level4Id)}, 1 )"; MobileCommon.ExecuteNonQuery(sql); }); UpdateStatus(EnumTableSyncStatus.CompleteReceive); return(new SyncResult { Successful = true }); } throw new Exception($"Response StatusCode={response.StatusCode}"); } } catch (Exception e) { UpdateStatus(EnumTableSyncStatus.ErrorInReceive); return(new SyncResult { Successful = false, Task = TableName, Message = e.Message }); } }
public static List <LevelFourCode> SubList(int level3Id, int projectId) { List <int> codeList = ProjectLevelCode.ListForProject(projectId).Where(x => x.Level3Id != null).Select(x => x.Level3Id.Value).Distinct().ToList(); return(ListForCompany().Where(x => x.Level3Id == level3Id && codeList.Contains(x.MatchId)).ToList()); }