private void GetClick(object sender, RoutedEventArgs e) { if (login == null || String.IsNullOrEmpty(login.SessionID)) { AddMessage("Not logged in."); return; } string fct = Function.Text; try { string str = ID.Text; int id; if (!int.TryParse(str, out id)) { id = 0; } switch (fct) { case "GetGatewayHardwareIDs": IDResult gidr = api.GetGatewayHardwareIDs(login.SessionID, str); Done(fct, gidr, gidr.IDs); return; case "GetDeviceList": DeviceListResult dr = api.GetDeviceList(login.SessionID); Done(fct, dr, dr.DeviceList); return; case "GetDeviceListByID": if (String.IsNullOrWhiteSpace(str)) { return; } string[] ids = str.Split(','); int count = ids.Length; int[] pks = new int[count]; for (int i = 0; i < count; i++) { pks[i] = int.Parse(ids[i]); } DeviceListResult dlri = api.GetDeviceListByID(login.SessionID, pks); Done(fct, dlri, dlri.DeviceList); return; case "GetDeviceListByHFCandGwType (HFC,GwType)": DeviceListResult dlr = api.GetDeviceListFromHFCandGWType(login.SessionID, str); Done(fct, dlr, dlr.DeviceList); return; case "GetUserByName": UserResult sur = api.GetUserByName(login.SessionID, str); Done(fct, sur, sur.Data); return; case "GetUsersByEmail": IDResult eur = api.GetUsersByEmail(login.SessionID, str); Done(fct, eur, eur.IDs); return; case "GetLoggedInUser (session;ip)": string[] split = str.Split(';'); IDResult sir = api.GetLoggedInUser(login.SessionID, split[0], (split.Length > 1) ? split[1] : null); Done(fct, sir, sir.IDs); return; case "GetTimeZones": TimeZonesResult tz = api.GetTimeZones(login.SessionID, str); Done(fct, tz, tz.TimeZones); return; case "GetCustomer": if (id <= 0) { id = login.CustomerID; } CustomerResult cr = api.GetCustomer(login.SessionID, id); Done(fct, cr, cr.Data); return; case "GetChildCustomerIDs": if (id <= 0) { id = login.CustomerID; } IDResult cidr = api.GetChildCustomerIDs(login.SessionID, id); Done(fct, cidr, cidr.IDs); return; case "GetChildSiteIDs": if (id <= 0) { id = login.CustomerID; } IDResult csidr = api.GetChildSiteIDs(login.SessionID, id); Done(fct, csidr, csidr.IDs); return; case "GetChildUserIDs": if (id <= 0) { id = login.CustomerID; } IDResult cuidr = api.GetChildUserIDs(login.SessionID, id); Done(fct, cuidr, cuidr.IDs); return; case "GetUser": if (id <= 0) { id = login.UserID; } UserResult ur = api.GetUser(login.SessionID, id); Done(fct, ur, ur.Data); return; case "GetSite": SiteResult sr = api.GetSite(login.SessionID, id); Done(fct, sr, sr.Data); return; case "GetChildHardwareIDs": IDResult chidr = api.GetChildHardwareIDs(login.SessionID, id); Done(fct, chidr, chidr.IDs); return; case "GetChildGatewayIDs": IDResult cgidr = api.GetChildGatewayIDs(login.SessionID, id); Done(fct, cgidr, cgidr.IDs); return; case "GetChildInverterIDs": IDResult ciidr = api.GetChildInverterIDs(login.SessionID, id); Done(fct, ciidr, ciidr.IDs); return; case "GetHardware": HardwareResult hr = api.GetHardware(login.SessionID, id); Done(fct, hr, hr.Data); return; case "GetGateway": GatewayResult gr = api.GetGateway(login.SessionID, id); Done(fct, gr, gr.Data); return; case "GetInverter": InverterResult ir = api.GetInverter(login.SessionID, id); Done(fct, ir, ir.Data); return; case "GetStringCombiner": StringCombinerResult scr = api.GetStringCombiner(login.SessionID, id); Done(fct, scr, scr.Data); return; case "GetFieldList": FieldListResult fr = api.GetFieldList(login.SessionID, id); Done(fct, fr, fr.FieldList); return; } } catch { AddMessage(String.Concat(fct, " failed. Please check your connection.")); } }
private void SetClick(object sender, RoutedEventArgs e) { if (login == null || String.IsNullOrEmpty(login.SessionID)) { AddMessage("Not logged in."); return; } string fct = SetFunction.Text; try { int id; if (!int.TryParse(SetID.Text, out id)) { id = 0; } switch (fct) { case "SetCustomer": CustomerResult cr = (id > 0) ? api.GetCustomer(login.SessionID, id) : null; if (cr != null && cr.Data == null) { Done(fct, cr, cr.Data); } else { CreateTab(fct, (cr != null) ? cr.Data : new Customer(), (tab, val) => { try { Customer c = val as Customer; if (!CreatedTab(fct, tab, (object)c ?? (val as Exception), (c != null) ? c.CustomerID : 0, id)) { return; } cr = api.SetCustomer(login.SessionID, c); Done(fct, cr, cr.Data); } catch { AddMessage(String.Concat(fct, " failed. Please check your connection.")); } }); } return; case "SetUser": UserResult ur = (id > 0) ? api.GetUser(login.SessionID, id) : null; if (ur != null && ur.Data == null) { Done(fct, ur, ur.Data); } else { CreateTab(fct, (ur != null) ? ur.Data : new User(), (tab, val) => { try { User u = val as User; if (!CreatedTab(fct, tab, (object)u ?? (val as Exception), (u != null) ? u.UserID : 0, id)) { return; } ur = api.SetUser(login.SessionID, u); Done(fct, ur, ur.Data); } catch { AddMessage(String.Concat(fct, " failed. Please check your connection.")); } }); } return; case "SetUserPassword": PasswordDlg dlg = new PasswordDlg(); dlg.Owner = GetWindow(); if (dlg.ShowDialog() == true) { try { UseHTTPS(); Result r = api.SetUserPassword(login.SessionID, id, dlg.Password); Done(fct, r, null); } finally { UseHTTP(); } } else { AddMessage(fct + " cancelled"); } return; case "SendEmail": CreateTab(fct, new Email(), (tab, val) => { try { Email email = val as Email; if (!CreatedTab(fct, tab, (object)email ?? (val as Exception), id, id)) { return; } IDResult r = api.SendEmail(login.SessionID, email); Done(fct, r, r.IDs); } catch { AddMessage(String.Concat(fct, " failed. Please check your connection.")); } }); return; case "SetSite": SiteResult sr = (id > 0) ? api.GetSite(login.SessionID, id) : null; if (sr != null && sr.Data == null) { Done(fct, sr, sr.Data); } else { CreateTab(fct, (sr != null) ? sr.Data : new Site(), (tab, val) => { try { Site s = val as Site; if (!CreatedTab(fct, tab, (object)s ?? (val as Exception), (s != null) ? s.SiteID : 0, id)) { return; } sr = api.SetSite(login.SessionID, s); Done(fct, sr, sr.Data); } catch { AddMessage(String.Concat(fct, " failed. Please check your connection.")); } }); } return; case "SetGateway": GatewayResult gr = (id > 0) ? api.GetGateway(login.SessionID, id) : null; if (gr != null && gr.Data == null) { Done(fct, gr, gr.Data); } else { CreateTab(fct, (gr != null) ? gr.Data : new Gateway(), (tab, val) => { try { Gateway g = val as Gateway; if (!CreatedTab(fct, tab, (object)g ?? (val as Exception), (g != null) ? g.HardwareID : 0, id)) { return; } gr = api.SetGateway(login.SessionID, g); Done(fct, gr, gr.Data); } catch { AddMessage(String.Concat(fct, " failed. Please check your connection.")); } }); } return; case "SetInverter": InverterResult ir = (id > 0) ? api.GetInverter(login.SessionID, id) : null; if (ir != null && ir.Data == null) { Done(fct, ir, ir.Data); } else { CreateTab(fct, (ir != null) ? ir.Data : new Inverter(), (tab, val) => { try { Inverter i = val as Inverter; if (!CreatedTab(fct, tab, (object)i ?? (val as Exception), (i != null) ? i.HardwareID : 0, id)) { return; } ir = api.SetInverter(login.SessionID, i); Done(fct, ir, ir.Data); } catch { AddMessage(String.Concat(fct, " failed. Please check your connection.")); } }); } return; case "SetStringCombiner": StringCombinerResult scr = (id > 0) ? api.GetStringCombiner(login.SessionID, id) : null; if (scr != null && scr.Data == null) { Done(fct, scr, scr.Data); } else { CreateTab(fct, (scr != null) ? scr.Data : new StringCombiner(), (tab, val) => { try { StringCombiner sc = val as StringCombiner; if (!CreatedTab(fct, tab, (object)sc ?? (val as Exception), (sc != null) ? sc.HardwareID : 0, id)) { return; } scr = api.SetStringCombiner(login.SessionID, sc); Done(fct, scr, scr.Data); } catch { AddMessage(String.Concat(fct, " failed. Please check your connection.")); } }); } return; } } catch { AddMessage(String.Concat(fct, " failed. Please check your connection.")); } }