Esempio n. 1
0
        public async Task <ActionResult> Index()
        {
            AirViewModels model = new AirViewModels();

            if (current_UserID <= 0)
            {
                return(RedirectToAction("Signin", "Login"));
            }
            else if (current_ApplianceId <= 0)
            {
                return(RedirectToAction("Index", "Setup"));
            }
            else
            {
                long applianceId = 0;
                if (current_ApplianceId > 0)
                {
                    applianceId = current_ApplianceId;
                }

                ViewBag.ActiveMenu = "air";
                string url = _appSettings.ApiUrl + "/Air/Index";
                client.BaseAddress = new Uri(url);

                HttpResponseMessage responseMessage = await client.GetAsync(url + "?accountid=" + current_UserID + "&applianceid=" + current_ApplianceId);

                var responseData = new ResponseData <AirGapSetting>();
                if (responseMessage.IsSuccessStatusCode)
                {
                    responseData = responseMessage.Content.ReadAsAsync <ResponseData <AirGapSetting> >().Result;

                    if (responseData.Data != null)
                    {
                        if (responseData.Data.ListApplianceDTO != null && responseData.Data.ListApplianceDTO.Count > 0)
                        {
                            foreach (var item in responseData.Data.ListApplianceDTO)
                            {
                                item.DeviceName += "(" + item.SerialNumber.Substring(item.SerialNumber.Length - 4) + ")";
                                if (item.Id == applianceId)
                                {
                                    model.SelectedAppliance = item;
                                    model.StreetName        = item.Street1;
                                    model.StreetName2       = item.Street2;
                                    model.State             = item.StateId.ToString();
                                    model.City    = item.City;
                                    model.Zipcode = item.ZipCode;
                                }
                            }
                            model.lAppliance = responseData.Data.ListApplianceDTO;
                        }

                        if (responseData.Data.TimerScheduleDTO != null && responseData.Data.TimerScheduleDTO.Count > 0)
                        {
                            Dictionary <long, string[]> lTimer = new Dictionary <long, string[]>();
                            foreach (var item in responseData.Data.TimerScheduleDTO)
                            {
                                if (!string.IsNullOrEmpty(item.ActiveValues))
                                {
                                    if (item.ActiveValues.IndexOf(',') != -1)
                                    {
                                        lTimer.Add(item.TimerTypeId.Value, item.ActiveValues.Split(','));
                                    }
                                    else
                                    {
                                        lTimer.Add(item.TimerTypeId.Value, new string[] { item.ActiveValues });
                                    }
                                }
                            }
                            model.lTimerSchedule = lTimer;
                        }

                        if (responseData.Data.States != null && responseData.Data.States.Count() > 0)
                        {
                            var listStates = new List <SelectListItem>();
                            foreach (var item in responseData.Data.States)
                            {
                                listStates.Add(new SelectListItem
                                {
                                    Text     = item.Name,
                                    Value    = item.Id.ToString(),
                                    Selected = item.Id == model.SelectedAppliance.StateId ? true : false
                                });
                            }
                            model.States = listStates;
                        }

                        if (responseData.Data.ListAccountDTO != null && responseData.Data.ListAccountDTO.Count() > 0)
                        {
                            model.lAccountDTO = responseData.Data.ListAccountDTO;
                        }
                    }
                }
            }
            return(View(model));
        }
Esempio n. 2
0
        public async Task <ActionResult> Index(AirViewModels model)
        {
            GetStates().Wait();
            model.States = listStates;
            string url         = string.Empty;
            long   applianceId = 0;

            if (current_ApplianceId > 0)
            {
                applianceId = current_ApplianceId;
            }
            if (model.UseAddressFromTelit == "UseTelit")
            {
                url                = _appSettings.ApiUrl + "/Air/UseAddressOfTelit";
                client             = new HttpClient();
                client.BaseAddress = new Uri(url);
            }
            else
            {
                url                = _appSettings.ApiUrl + "/Air/CompareAddressFromTelit";
                client             = new HttpClient();
                client.BaseAddress = new Uri(url);
            }

            ApplianceDTO applianceDTO = new ApplianceDTO()
            {
                AccountId = current_UserID,
                Street1   = model.StreetName,
                Street2   = model.StreetName2,
                City      = model.City,
                ZipCode   = model.Zipcode,
                StateId   = Convert.ToInt64(model.State),
                Id        = current_ApplianceId
            };

            HttpResponseMessage responseMessage = await client.PostAsJsonAsync(url, applianceDTO);

            var responseData = new ResponseData <AirGapSetting>();

            if (responseMessage.IsSuccessStatusCode)
            {
                responseData = responseMessage.Content.ReadAsAsync <ResponseData <AirGapSetting> >().Result;
                if (responseData != null && responseData.Data != null)
                {
                    if (responseData.Data.ListApplianceDTO != null && responseData.Data.ListApplianceDTO.Count > 0)
                    {
                        foreach (var item in responseData.Data.ListApplianceDTO)
                        {
                            item.DeviceName += "(" + item.SerialNumber.Substring(item.SerialNumber.Length - 4) + ")";
                            if (item.Id == applianceId)
                            {
                                model.SelectedAppliance = item;
                                model.StreetName        = item.Street1;
                                model.StreetName2       = item.Street2;
                                model.State             = item.StateId.ToString();
                                model.City    = item.City;
                                model.Zipcode = item.ZipCode;
                            }
                        }
                        model.lAppliance = responseData.Data.ListApplianceDTO;
                    }

                    if (responseData.Data.TimerScheduleDTO != null && responseData.Data.TimerScheduleDTO.Count > 0)
                    {
                        Dictionary <long, string[]> lTimer = new Dictionary <long, string[]>();
                        foreach (var item in responseData.Data.TimerScheduleDTO)
                        {
                            if (!string.IsNullOrEmpty(item.ActiveValues))
                            {
                                if (item.ActiveValues.IndexOf(',') != -1)
                                {
                                    lTimer.Add(item.TimerTypeId.Value, item.ActiveValues.Split(','));
                                }
                                else
                                {
                                    lTimer.Add(item.TimerTypeId.Value, new string[] { item.ActiveValues });
                                }
                            }
                        }
                        model.lTimerSchedule = lTimer;
                    }

                    if (responseData.Data.States != null && responseData.Data.States.Count() > 0)
                    {
                        var listStates = new List <SelectListItem>();
                        foreach (var item in responseData.Data.States)
                        {
                            listStates.Add(new SelectListItem
                            {
                                Text     = item.Name,
                                Value    = item.Id.ToString(),
                                Selected = item.Id == model.SelectedAppliance.StateId ? true : false
                            });
                        }
                        model.States = listStates;
                    }

                    if (responseData.Data.ListAccountDTO != null && responseData.Data.ListAccountDTO.Count() > 0)
                    {
                        model.lAccountDTO = responseData.Data.ListAccountDTO;
                    }

                    if (responseData.Data.IsMatching != null && responseData.Data.IsMatching.HasValue)
                    {
                        var isMatching = responseData.Data.IsMatching.Value;
                        if (isMatching)
                        {
                            return(RedirectToAction("Index", "Air", new { }));
                        }
                        else
                        {
                            ViewBag.ConfirmAddress = true;
                        }
                    }
                    else
                    {
                        if (responseData.Data != null && responseData.Status == ResponseStatus.Success.ToString())
                        {
                            return(RedirectToAction("Index", "Air", new { }));
                        }
                        else
                        {
                            ViewBag.MessageError = responseData.Message;
                        }
                    }
                }
                else
                {
                    ViewBag.MessageError = responseData.Message;
                }
            }

            return(View(model));
        }