private async Task <bool> RefreshInstitute() { if (asyncLock) { return(false); } try { asyncLock = true; instituteInfo = await packetWriter.RefreshInstituteAsync(); if (instituteInfo == null) { return(false); } var techIds = new List <int>(); foreach (var tech in instituteInfo.Techs) { techIds.Add(tech.Id); } techList.SetObjects(techIds, true); return(true); } finally { asyncLock = false; } }
/// <summary> /// Làm mới sở nghiên cứu. /// </summary> public static async Task <InstituteInfo> RefreshInstituteAsync(this IPacketWriter writer) { var packet = await writer.SendCommandAsync("63601"); if (packet == null) { return(null); } return(InstituteInfo.Parse(JToken.Parse(packet.Message))); }
public static InstituteInfo Parse(JToken token) { var result = new InstituteInfo(); var instityteDto = token["instityteDto"]; var techs = new List <InstituteTech>(); foreach (var subToken in instityteDto) { var tech = InstituteTech.Parse(subToken); techs.Add(tech); } result.Techs = techs; return(result); }
public InstituteView() { InitializeComponent(); asyncLock = false; timerLock = false; newValueChecked = false; instituteInfo = null; nameColumn.AspectGetter = obj => { return(instituteInfo.Techs.Find(tech => tech.Id == (int)obj).Name); }; levelColumn.AspectGetter = obj => { return(instituteInfo.Techs.Find(tech => tech.Id == (int)obj).Level); }; extraColumn.AspectGetter = obj => { var tech = instituteInfo.Techs.Find(item => item.Id == (int)obj); return(String.Format("+{0}{1}", tech.Extra, tech.ValueUnit)); }; valueColumn.AspectGetter = obj => { var tech = instituteInfo.Techs.Find(item => item.Id == (int)obj); return(String.Format("+{0}{1}", tech.Value, tech.ValueUnit)); }; }