Ejemplo n.º 1
0
        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."));
            }
        }
Ejemplo n.º 2
0
        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."));
            }
        }