Пример #1
0
        public ResultInfo GetListRequiredResetLocation(string user, string token)
        {
            var result = new ResultWithData()
            {
                id  = "0",
                msg = ""
            };

            try
            {
                if (!mongoHelper.checkLoginSession(user, token))
                {
                    throw new Exception("Tài khoản đã có người đăng nhập");
                }

                result.data = db.ResetLocations.Where(p => p.IsAppove == 0).OrderByDescending(p => p.CreateDate).Select(p => new { StaffName   = p.HaiStaff.FullName,
                                                                                                                                   OldLocation = p.OldLocation, NewLocation = p.NewLocation, AgencyCode = p.AgencyCode, RequiredId = p.Id }).ToList();
            }
            catch (Exception e)
            {
                result.id  = "0";
                result.msg = e.Message;
            }

            result.id = "1";

            return(result);
        }
Пример #2
0
 public void AddTestH5V2()
 {
     var model = new AddSupplierModel()
     {
         Address           = "北京市朝阳区",
         BusinessTimeStart = new TimeModel()
         {
             Hour = 8, Minute = 0
         },
         BusinessTimeEnd = new TimeModel()
         {
             Hour = 20, Minute = 0
         },
         CoordinatesLatitude  = "42.324",
         CoordinatesLongitude = "152.324",
         DeliveryTime         = new DeliveryTime[] { new DeliveryTime()
                                                     {
                                                         Start = new TimeModel()
                                                         {
                                                             Hour = 11, Minute = 0
                                                         }, End = new TimeModel()
                                                         {
                                                             Hour = 13, Minute = 30
                                                         }
                                                     } },
         Name = "测试",
         Tel  = "13888888888"
     };
     IReturn @iReturn = ApplicationRegistry.Supplier.Add(model);
     ResultWithData <string> result = @iReturn.Result(new ReturnContext()
     {
         SystemId = "h5", Version = "1"
     });
 }
Пример #3
0
        public ResultWithData <CategoryModel> Add(AddModel addModel)
        {
            IReturn @IReturn = ApplicationRegistry.Category.Add(addModel.Name, addModel.Sort, addModel.RestaurantId);
            ResultWithData <CategoryModel> result = @IReturn.Result(SystemHelper.GetSystemIdAndVersion(this.Request));

            return(result);
        }
Пример #4
0
        public async Task <ResultWithData <string> > GetUserIdByTokenAsync(string token)
        {
            if (String.IsNullOrEmpty(token))
            {
                throw new Exception("Invalid auth token.");
            }

            var result = new ResultWithData <string>();

            try
            {
                var appUser = await _context.Users
                              .SingleOrDefaultAsync(u => u.Token == token);

                if (appUser == null)
                {
                    throw new Exception("Invalid auth token.");
                }

                var id = appUser.Id;

                result.ResultData = id;
                result.Success    = true;
            }
            catch (Exception ex)
            {
                result.Success    = false;
                result.Message    = ex.Message;
                result.StackTrace = ex.StackTrace;
            }

            return(result);
        }
Пример #5
0
        public ResultWithData <PageList <CategoryModel> > Select(int restaurantId)
        {
            IReturn @IReturn = ApplicationRegistry.Category.Select(restaurantId);
            ResultWithData <PageList <CategoryModel> > result = @IReturn.Result(SystemHelper.GetSystemIdAndVersion(this.Request));

            return(result);
        }
Пример #6
0
        public ResultWithData <CultureInfo> GetCultureByUserId(string userId)
        {
            var resultWithData = new ResultWithData <CultureInfo>();

            try
            {
                var user = UserManager.FindById(userId);

                if (user.UserProfile == null)
                {
                    resultWithData.ResultData = UserProfile.DefaultCulture;
                }
                else
                {
                    resultWithData.ResultData = user.UserProfile.UserCulture;
                }

                resultWithData.Success = true;
            }
            catch (Exception ex)
            {
                resultWithData.Success    = false;
                resultWithData.Message    = ex.Message;
                resultWithData.StackTrace = ex.StackTrace;
            }

            return(resultWithData);
        }
        public ResultWithData <List <SourcePhrase> > GetByDictionaryIdAndSearchPattern(int dictionaryId, string searchPattern)
        {
            var resultWithData = new ResultWithData <List <SourcePhrase> >();

            try
            {
                if (String.IsNullOrEmpty(searchPattern))
                {
                    resultWithData.ResultData = _database.SourcePhrases
                                                .Find(s => s.DictionaryId == dictionaryId)
                                                .ToList();
                }
                else
                {
                    resultWithData.ResultData = _database.SourcePhrases
                                                .Find(s => (s.DictionaryId == dictionaryId) &&
                                                      (s.Value.ToLower().Contains(searchPattern) || s.TranslatedPhrases.Any(tp => tp.Value.ToLower().Contains(searchPattern))))
                                                .ToList();
                }

                resultWithData.Success = true;
            }
            catch (Exception ex)
            {
                resultWithData.Success    = false;
                resultWithData.Message    = ex.Message;
                resultWithData.StackTrace = ex.StackTrace;
            }

            return(resultWithData);
        }
Пример #8
0
 public void Clear()
 {
     IReturn @iReturn             = ApplicationRegistry.Supplier.RemoveAll();
     ResultWithData <bool> result = @iReturn.Result(new ReturnContext()
     {
         SystemId = "app"
     });
 }
Пример #9
0
        // GET: Demo
        public ActionResult Index(string name = "demo", int age = 18)
        {
            IReturn @IReturn = ApplicationRegistry.Demo.SayHello(name, age);
            ResultWithData <string> result = @IReturn.Result(new ReturnContext()
            {
                SystemId = "app"
            });

            ViewBag.data = result.DataBody;
            return(View());
        }
Пример #10
0
        public async Task <ResultWithData <ClaimsIdentity> > CreateIdentityAsync(dynamic userFromView)
        {
            var result = new ResultWithData <ClaimsIdentity>();

            try
            {
                ApplicationUser appUser;
                var             appUserByEmail = await UserManager.FindByEmailAsync(userFromView.Email);

                if (appUserByEmail != null)
                {
                    appUser = await UserManager.FindAsync(appUserByEmail.UserName, userFromView.Password);
                }
                else
                {
                    appUser = await UserManager.FindAsync(userFromView.UserName, userFromView.Password);
                }

                if (appUser == null)
                {
                    throw new Exception("Invalid login or password.");
                }

                if (!appUser.EmailConfirmed)
                {
                    throw new Exception("Email is not confirmed.");
                }

                var claim = await UserManager.CreateIdentityAsync(
                    appUser,
                    DefaultAuthenticationTypes.ApplicationCookie
                    );

                if (claim == null)
                {
                    throw new Exception("Can't create an identity claim.");
                }

                result.ResultData = claim;
                result.Success    = true;
            }
            catch (Exception ex)
            {
                result.Success    = false;
                result.Message    = ex.Message;
                result.StackTrace = ex.StackTrace;
            }

            return(result);
        }
Пример #11
0
        // GET: Home
        public ActionResult Index()
        {
            IReturn @iReturn = ApplicationRegistry.Supplier.Select(20, 1);
            ResultWithData <PageList <SelectModel> > result = @iReturn.Result(new ReturnContext()
            {
                SystemId = "app"
            });

            var data = result.DataBody.Collections;

            ViewBag.data = data;

            return(View());
        }
Пример #12
0
        public async Task <ResultWithData <string> > CreateUserAsync(dynamic userFromView)
        {
            var resultWithData = new ResultWithData <string>();

            try
            {
                var appUser = new ApplicationUser
                {
                    UserName = userFromView.UserName,
                    Email    = userFromView.Email,
                    Token    = TokenGeneratorHelper.GetToken(),
                };

                var identityResult = await UserManager.CreateAsync(appUser, userFromView.Password);

                if (!identityResult.Succeeded)
                {
                    var errors = String.Empty;

                    foreach (var error in identityResult.Errors)
                    {
                        errors += $"{ error }{ Environment.NewLine }";
                    }

                    throw new Exception(errors);
                }

                // Add user profile.
                appUser.UserProfile = new UserProfile(
                    userFromView.Locale.ToString()
                    );
                UserManager.Update(appUser);

                resultWithData.ResultData = appUser.Token;
                resultWithData.Success    = true;
            }
            catch (Exception ex)
            {
                resultWithData.Success    = false;
                resultWithData.Message    = ex.Message;
                resultWithData.StackTrace = ex.StackTrace;
            }

            return(resultWithData);
        }
Пример #13
0
        public ResultWithData <List <Dictionary> > GetByUserIdAndSearchPattern(string userId, string searchPattern, bool searchDescriptions)
        {
            var resultWithData = new ResultWithData <List <Dictionary> >();

            try
            {
                if (String.IsNullOrEmpty(searchPattern))
                {
                    resultWithData.ResultData = _database.Dictionaries
                                                .Find(d => d.ApplicationUserId == userId)
                                                .ToList();
                }
                else
                {
                    List <Dictionary> dictionaries;

                    if (searchDescriptions)
                    {
                        dictionaries = _database.Dictionaries
                                       .Find(d => (d.ApplicationUserId == userId) &&
                                             (d.Name.ToLower().Contains(searchPattern.ToLower()) || (d.Description != null && d.Description.ToLower().Contains(searchPattern.ToLower()))))
                                       .ToList();
                    }
                    else
                    {
                        dictionaries = _database.Dictionaries
                                       .Find(d => d.ApplicationUserId == userId && d.Name.ToLower().Contains(searchPattern.ToLower()))
                                       .ToList();
                    }

                    resultWithData.ResultData = dictionaries;
                }

                resultWithData.Success = true;
            }
            catch (Exception ex)
            {
                resultWithData.Success    = false;
                resultWithData.Message    = ex.Message;
                resultWithData.StackTrace = ex.StackTrace;
            }

            return(resultWithData);
        }
Пример #14
0
        public async Task <ResultWithData <string> > GetAuthTokenAsync(string email, string password)
        {
            var result = new ResultWithData <string>();

            try
            {
                ApplicationUser appUser;
                var             appUserByEmail = await UserManager.FindByEmailAsync(email);

                if (appUserByEmail != null)
                {
                    appUser = await UserManager.FindAsync(appUserByEmail.UserName, password);
                }
                else
                {
                    throw new Exception("Invalid login or password.");
                }

                if (appUser == null)
                {
                    throw new Exception("Invalid login or password.");
                }

                var token = appUser.Token;

                if (String.IsNullOrEmpty(token))
                {
                    throw new Exception("Invalid auth token.");
                }

                result.ResultData = token;
                result.Success    = true;
            }
            catch (Exception ex)
            {
                result.Success    = false;
                result.Message    = ex.Message;
                result.StackTrace = ex.StackTrace;
            }

            return(result);
        }
Пример #15
0
        public async Task <ResultWithData <string> > GetIdByUserName(string userName)
        {
            var resultWithData = new ResultWithData <string>();

            try
            {
                var user = await UserManager.FindByNameAsync(userName);

                resultWithData.ResultData = user.Id;
                resultWithData.Success    = true;
            }
            catch (Exception ex)
            {
                resultWithData.Success    = false;
                resultWithData.Message    = ex.Message;
                resultWithData.StackTrace = ex.StackTrace;
            }

            return(resultWithData);
        }
Пример #16
0
        public ResultWithData <List <Dictionary> > GetByUserId(string userId)
        {
            var resultWithData = new ResultWithData <List <Dictionary> >();

            try
            {
                resultWithData.ResultData = _database.Dictionaries
                                            .Find(d => d.ApplicationUserId == userId)
                                            .ToList();
                resultWithData.Success = true;
            }
            catch (Exception ex)
            {
                resultWithData.Success    = false;
                resultWithData.Message    = ex.Message;
                resultWithData.StackTrace = ex.StackTrace;
            }

            return(resultWithData);
        }
Пример #17
0
        public ResultWithData <bool> CanSubscribe(string userId, string targetUserId)
        {
            var resultWithData = new ResultWithData <bool>();

            try
            {
                resultWithData.ResultData = _database.Subscriptions
                                            .Find(s => s.SubscriberId == userId && s.TargetId == targetUserId)
                                            .SingleOrDefault() == null;
                resultWithData.Success = true;
            }
            catch (Exception ex)
            {
                resultWithData.Success    = false;
                resultWithData.Message    = ex.Message;
                resultWithData.StackTrace = ex.StackTrace;
            }

            return(resultWithData);
        }
        public ResultWithData <List <SourcePhrase> > GetByDictionaryId(int dictionaryId)
        {
            var resultWithData = new ResultWithData <List <SourcePhrase> >();

            try
            {
                resultWithData.ResultData = _database.SourcePhrases
                                            .Find(s => s.DictionaryId == dictionaryId)
                                            .ToList();
                resultWithData.Success = true;
            }
            catch (Exception ex)
            {
                resultWithData.Success    = false;
                resultWithData.Message    = ex.Message;
                resultWithData.StackTrace = ex.StackTrace;
            }

            return(resultWithData);
        }
Пример #19
0
        public async Task <ResultWithData <ApplicationUser> > GetByUserIdAsync(string userId)
        {
            var resultWithData = new ResultWithData <ApplicationUser>();

            try
            {
                var user = await UserManager.FindByIdAsync(userId);

                resultWithData.ResultData = user;
                resultWithData.Success    = true;
            }
            catch (Exception ex)
            {
                resultWithData.Success    = false;
                resultWithData.Message    = ex.Message;
                resultWithData.StackTrace = ex.StackTrace;
            }

            return(resultWithData);
        }
Пример #20
0
        public ResultWithData <List <Language> > GetAll()
        {
            var resultWithData = new ResultWithData <List <Language> >();

            try
            {
                resultWithData.ResultData = _database.Languages
                                            .GetAll()
                                            .ToList();
                resultWithData.Success = true;
            }
            catch (Exception ex)
            {
                resultWithData.Success    = false;
                resultWithData.Message    = ex.Message;
                resultWithData.StackTrace = ex.StackTrace;
            }

            return(resultWithData);
        }
Пример #21
0
        public ResultWithData <int> GetSubscriptionsCountByUserId(string userId)
        {
            var resultWithData = new ResultWithData <int>();

            try
            {
                resultWithData.ResultData = _database.Subscriptions
                                            .Find(s => s.SubscriberId == userId)
                                            .Count();
                resultWithData.Success = true;
            }
            catch (Exception ex)
            {
                resultWithData.Success    = false;
                resultWithData.Message    = ex.Message;
                resultWithData.StackTrace = ex.StackTrace;
            }

            return(resultWithData);
        }
Пример #22
0
        public async Task <ResultWithData <int> > CreateForPluginAsync(string userId, string name, string description, int sourceLanguageId, int targetLanguageId)
        {
            var resultWithData = new ResultWithData <int>();

            try
            {
                var existing = _database.Dictionaries
                               .Find(d => d.Name == name)
                               .SingleOrDefault();

                if (existing != null)
                {
                    resultWithData.ResultData = existing.Id;
                    resultWithData.Success    = true;

                    return(resultWithData);
                }

                var dictionary = new Dictionary
                {
                    Name              = name,
                    Description       = description,
                    ApplicationUserId = userId,
                    SourceLanguageId  = sourceLanguageId,
                    TargetLanguageId  = targetLanguageId,
                };
                _database.Dictionaries.Create(dictionary);
                await _database.SaveAsync();

                resultWithData.ResultData = dictionary.Id;
                resultWithData.Success    = true;
            }
            catch (Exception ex)
            {
                resultWithData.Success    = false;
                resultWithData.Message    = ex.Message;
                resultWithData.StackTrace = ex.StackTrace;
            }

            return(resultWithData);
        }
Пример #23
0
        public ResultWithData <string> GetLanguagePairById(int dictionaryId)
        {
            var resultWithData = new ResultWithData <string>();

            try
            {
                var dictionary   = _database.Dictionaries.Get(dictionaryId);
                var languagePair = $"{ dictionary.SourceLanguage.Code }-{ dictionary.TargetLanguage.Code }";

                resultWithData.ResultData = languagePair.ToLower();
                resultWithData.Success    = true;
            }
            catch (Exception ex)
            {
                resultWithData.Success    = false;
                resultWithData.Message    = ex.Message;
                resultWithData.StackTrace = ex.StackTrace;
            }

            return(resultWithData);
        }
Пример #24
0
        public ResultWithData <int> GetIdByCode(string code)
        {
            var resultWithData = new ResultWithData <int>();

            try
            {
                resultWithData.ResultData = _database.Languages
                                            .Find(l => l.Code == code)
                                            .FirstOrDefault().Id;

                resultWithData.Success = true;
            }
            catch (Exception ex)
            {
                resultWithData.Success    = false;
                resultWithData.Message    = ex.Message;
                resultWithData.StackTrace = ex.StackTrace;
            }

            return(resultWithData);
        }
Пример #25
0
        public ResultWithData <Dictionary> GetById(int dictionaryId, string userId)
        {
            var resultWithData = new ResultWithData <Dictionary>();

            try
            {
                var dictionary = _database.Dictionaries.Get(dictionaryId);
                resultWithData.ResultData = dictionary.ApplicationUserId == userId
                    ? dictionary
                    : null;
                resultWithData.Success = true;
            }
            catch (Exception ex)
            {
                resultWithData.Success    = false;
                resultWithData.Message    = ex.Message;
                resultWithData.StackTrace = ex.StackTrace;
            }

            return(resultWithData);
        }
Пример #26
0
        public ResultWithData <List <UserProfile> > GetSubscriptionsByUserId(string userId)
        {
            var resultWithData = new ResultWithData <List <UserProfile> >();

            try
            {
                resultWithData.ResultData = _database.Subscriptions
                                            .Find(s => s.SubscriberId == userId)
                                            .Select(s => s.Target.UserProfile)
                                            .ToList();
                resultWithData.Success = true;
            }
            catch (Exception ex)
            {
                resultWithData.Success    = false;
                resultWithData.Message    = ex.Message;
                resultWithData.StackTrace = ex.StackTrace;
            }

            return(resultWithData);
        }
Пример #27
0
 public async Task SendMessage(ResultWithData item)
 {
     await Clients.All.SendMessageToClients(item);
 }
Пример #28
0
        public dynamic ResultValue <T>(int status = 200, T data = default(T), string message = "")
        {
            var result = new ResultWithData <T>(status, data, message);

            return(result);
        }
Пример #29
0
        public static void HandleRequest(HttpProcessor p, string jsonStr)
        {
            object response = null;

            try
            {
                dynamic requestObj = JsonConvert.DeserializeObject(jsonStr);
                string  cmd        = Try.Get(() => (string)requestObj.cmd);
                switch (cmd)
                {
                case "log_get":
                {
                    int  nextLine = (int)requestObj.nextLine;
                    long logId    = (long)requestObj.logId;
                    if (logId == -1)
                    {
                        logId = ServiceWrapper.logReader.readerId;
                    }
                    else if (logId != ServiceWrapper.logReader.readerId)
                    {
                        response = new ResultLogGet("REFRESH", -1, ServiceWrapper.logReader.readerId, null);
                        break;
                    }
                    List <string> lines = ServiceWrapper.logReader.GetLogUpdate(logId, ref nextLine);
                    response = new ResultLogGet("OK", nextLine, ServiceWrapper.logReader.readerId, lines);
                    break;
                }

                    #region Hotkeys
                case "hotkey_reorder":
                case "hotkey_names":
                case "hotkey_list":
                case "hotkey_new":
                case "hotkey_get":
                case "hotkey_update":
                case "hotkey_delete":
                {
                    response = NamedItemAPI(requestObj, ServiceWrapper.config.hotkeys);
                    break;
                }

                case "beginHotkeyBind":
                {
                    int    hotkeyId = requestObj.hotkeyId;
                    string bindId   = ServiceWrapper.hotkeyManager.BeginHotkeyBind(hotkeyId);
                    if (bindId == null)
                    {
                        response = new ResultFailWithReason("hotkey not found");
                    }
                    else if (bindId == "")
                    {
                        response = new ResultFailWithReason("another bind is already in progress");
                    }
                    else
                    {
                        response = new ResultWithData(bindId);
                    }
                    break;
                }

                case "endHotkeyBind":
                {
                    int    hotkeyId = requestObj.hotkeyId;
                    Hotkey hotkey   = ServiceWrapper.config.hotkeys.Get(hotkeyId);
                    if (hotkey == null)
                    {
                        response = new ResultFailWithReason("hotkey not found");
                        break;
                    }
                    string bindId = requestObj.bindId;
                    if (string.IsNullOrWhiteSpace(bindId))
                    {
                        response = new ResultFailWithReason("invalid bindId");
                        break;
                    }
                    while (bindId == ServiceWrapper.hotkeyManager.GetCurrentBindId())
                    {
                        Thread.Sleep(100);
                    }
                    response = new ResultWithData(hotkey);
                    break;
                }

                case "cancelHotkeyBind":
                {
                    string bindId = requestObj.bindId;
                    if (string.IsNullOrWhiteSpace(bindId))
                    {
                        response = new ResultFailWithReason("invalid bindId");
                        break;
                    }
                    ServiceWrapper.hotkeyManager.CancelHotkeyBind(bindId);
                    response = new ResultSuccess();
                    break;
                }

                case "unbindHotkey":
                {
                    string bindId = requestObj.bindId;
                    if (string.IsNullOrWhiteSpace(bindId))
                    {
                        response = new ResultFailWithReason("invalid bindId");
                        break;
                    }
                    Hotkey hotkey = ServiceWrapper.hotkeyManager.UnbindHotkey(bindId);
                    if (hotkey != null)
                    {
                        response = new ResultWithData(hotkey);
                    }
                    else
                    {
                        response = new ResultFailWithReason("Unable to unbind hotkey. Please try again.");
                    }
                    break;
                }

                case "executeHotkey":
                {
                    int    hotkeyId = requestObj.hotkeyId;
                    string error    = ServiceWrapper.hotkeyManager.ExecuteHotkeyById(hotkeyId);
                    if (error == null)
                    {
                        response = new ResultSuccess();
                    }
                    else
                    {
                        response = new ResultFailWithReason("Hotkey manual execution failed: " + error);
                    }
                    break;
                }

                    #endregion
                    #region BroadLink
                case "broadlink_reorder":
                case "broadlink_names":
                case "broadlink_list":
                case "broadlink_new":
                case "broadlink_get":
                case "broadlink_update":
                case "broadlink_delete":
                {
                    response = NamedItemAPI(requestObj, ServiceWrapper.config.broadLinks);
                    break;
                }

                case "broadlink_command_short_names":
                {
                    response = new ResultWithData(IRBlasters.IRCommands.GetIRCommandShortNames());
                    break;
                }

                    #endregion
                    #region BroadLink Commands
                case "broadlinkcmd_reorder":
                case "broadlinkcmd_names":
                case "broadlinkcmd_list":
                case "broadlinkcmd_new":
                case "broadlinkcmd_get":
                case "broadlinkcmd_update":
                case "broadlinkcmd_delete":
                {
                    response = NamedItemAPI(requestObj, BroadLinkCommands.commands, (Action)(() =>
                        {
                            BroadLinkCommands.Save(ServiceWrapper.BroadLinkCommandsFile);
                        }));
                    break;
                }

                case "broadlinkcmd_reload_commands":
                {
                    BroadLinkCommands.Load(ServiceWrapper.BroadLinkCommandsFile);
                    response = new ResultSuccess();
                    break;
                }

                case "beginBroadlinkCommandLearn":
                {
                    int    controllerId = requestObj.controllerId;
                    int    commandId    = requestObj.commandId;
                    string lessonId     = BroadLinkCommands.BeginLearning(controllerId, commandId);
                    if (lessonId == null)
                    {
                        response = new ResultFailWithReason("hotkey not found");
                    }
                    else if (lessonId == "")
                    {
                        response = new ResultFailWithReason("another bind is already in progress");
                    }
                    else
                    {
                        response = new ResultWithData(lessonId);
                    }
                    break;
                }

                case "endBroadlinkCommandLearn":
                {
                    int          controllerId = requestObj.controllerId;
                    int          commandId    = requestObj.commandId;
                    BroadLinkCmd command      = BroadLinkCommands.commands.Get(commandId);
                    if (command == null)
                    {
                        response = new ResultFailWithReason("command not found");
                        break;
                    }
                    string lessonId = requestObj.lessonId;
                    if (string.IsNullOrWhiteSpace(lessonId))
                    {
                        response = new ResultFailWithReason("invalid lessonId");
                        break;
                    }
                    BroadLinkCommands.AwaitLearningResult(controllerId, lessonId);
                    response = new ResultWithData(command);
                    break;
                }

                case "cancelBroadlinkCommandLearn":
                {
                    int    controllerId = requestObj.controllerId;
                    string lessonId     = requestObj.lessonId;
                    if (string.IsNullOrWhiteSpace(lessonId))
                    {
                        response = new ResultFailWithReason("invalid lessonId");
                        break;
                    }
                    BroadLinkCommands.CancelLearning(controllerId, lessonId);
                    response = new ResultSuccess();
                    break;
                }

                case "unlearnBroadlinkCommand":
                {
                    int    controllerId = requestObj.controllerId;
                    string lessonId     = requestObj.lessonId;
                    if (string.IsNullOrWhiteSpace(lessonId))
                    {
                        response = new ResultFailWithReason("invalid lessonId");
                        break;
                    }
                    BroadLinkCmd command = BroadLinkCommands.UnlearnCommandCodes(controllerId, lessonId);
                    if (command != null)
                    {
                        response = new ResultWithData(command);
                    }
                    else
                    {
                        response = new ResultFailWithReason("Unable to unbind command. Please try again.");
                    }
                    break;
                }

                    #endregion
                    #region iTach
                case "itach_reorder":
                case "itach_names":
                case "itach_list":
                case "itach_new":
                case "itach_get":
                case "itach_update":
                case "itach_delete":
                {
                    response = NamedItemAPI(requestObj, ServiceWrapper.config.iTachs);
                    break;
                }

                case "ir_command_short_names":
                {
                    response = new ResultWithData(IRBlasters.IRCommands.GetIRCommandShortNames());
                    break;
                }

                case "itach_reload_commands":
                {
                    iTachCommands.Load(ServiceWrapper.iTachCommandsFile);
                    response = new ResultSuccess();
                    break;
                }

                    #endregion
                    #region Vera
                case "vera_reorder":
                case "vera_names":
                case "vera_list":
                case "vera_new":
                case "vera_get":
                case "vera_update":
                case "vera_delete":
                {
                    response = NamedItemAPI(requestObj, ServiceWrapper.config.veras);
                    break;
                }

                case "vera_command_list":
                {
                    List <object> list = new List <object>();
                    Parallel.ForEach(ServiceWrapper.config.veras.List(), vera =>
                        {
                            ConcurrentDictionary <int, string> map = vera.GetDeviceIdToDisplayNameMap();
                            if (map != null)
                            {
                                int[] DeviceIds = map.Keys.ToArray();
                                string[] Names  = DeviceIds.Select(id => map[id]).ToArray();
                                lock (list)
                                {
                                    list.Add(new { Id = vera.id, Name = vera.name, DeviceIds = DeviceIds, Names = Names });
                                }
                            }
                        });
                    response = new ResultWithData(list);
                    break;
                }

                case "vera_reload_commands":
                {
                    int success = 0;
                    int failure = 0;
                    Parallel.ForEach(ServiceWrapper.config.veras.List(), vera =>
                        {
                            if (vera.LoadDisplayNames(true))
                            {
                                Interlocked.Increment(ref success);
                            }
                            else
                            {
                                Interlocked.Increment(ref failure);
                            }
                        });
                    response = new ResultWithData("Vera Command Loading complete. Successful loads: " + success + ". Failed loads: " + failure);
                    break;
                }

                    #endregion
                    #region HomeAssistant
                case "hass_reorder":
                case "hass_names":
                case "hass_list":
                case "hass_new":
                case "hass_get":
                case "hass_update":
                case "hass_delete":
                {
                    response = NamedItemAPI(requestObj, ServiceWrapper.config.homeAssistantServers);
                    break;
                }

                case "hass_entities":
                {
                    List <object> list = new List <object>();
                    Parallel.ForEach(ServiceWrapper.config.homeAssistantServers.List(), hass =>
                        {
                            List <object> listFromOneServer = hass.GetCommandList();
                            list.AddRange(listFromOneServer);
                        });
                    response = new ResultWithData(list);
                    break;
                }

                case "hass_load":
                {
                    int success = 0;
                    int failure = 0;
                    Parallel.ForEach(ServiceWrapper.config.homeAssistantServers.List(), hass =>
                        {
                            if (hass.Load())
                            {
                                Interlocked.Increment(ref success);
                            }
                            else
                            {
                                Interlocked.Increment(ref failure);
                            }
                        });
                    response = new ResultWithData("HomeAssistant Entity Loading complete. Successful loads: " + success + ". Failed loads: " + failure);
                    break;
                }

                    #endregion
                default:
                    response = new ResultFail()
                    {
                        error = "command \"" + cmd + "\" not supported"
                    };
                    break;
                }
            }
            catch (Exception ex)
            {
                Logger.Debug(ex);
                response = new ResultFail()
                {
                    error = "An unexpected error occurred. " + ex.ToString()
                };
            }
            finally
            {
                if (response == null)
                {
                    response = new ResultFail()
                    {
                        error = "Application Error: A response was not generated, so this response was generated as a fallback."
                    }
                }
                ;
                p.CompressResponseIfCompatible();
                p.writeSuccess(jsonType);
                p.outputStream.Write(JsonConvert.SerializeObject(response));
            }
        }
Пример #30
0
 public void SayHelloTest()
 {
     ResultWithData <string> result = ServicesRegistry.Demo.SayHello("aa", 18);
 }