public JsonResult Create(LocalizationViewModel model) { if (!ModelState.IsValid) { return(Json(new { Result = "ERROR", Message = BaseResource.Get("InvalidData") })); } var toCreate = new Models.LocalizationModel() { Key = model.Key, Value = model.Value, Culture = model.Culture, LastModDate = DateTime.Now, ModUser = User.Identity.Name, TranslationStatus = Enums.EnumTranslationStatus.Undefined, WasHit = false }; try { var dbobj = localizationRepository.Create(toCreate, User.Identity.Name); db.SaveChanges(); return(Json(new { Result = "OK", Record = dbobj.ToLocalizationViewModel() })); } catch (Exception ex) { return(Json(new { Result = "ERROR", Message = ex.Message })); } }
public DTOs.GeneralHubResponseObject ProcessIncoming(DTOs.GeneralHubRequestObject Request) { GeneralHubResponseObject result = new GeneralHubResponseObject(); var jconf = JsonConvert.SerializeObject(Request.RequestData); var mrRequest = JsonConvert.DeserializeObject <MiningRoomRequesObject>(jconf); switch (mrRequest.Command) { case "GetRoomOverview": var overviewData = GetOverview(mrRequest.MiningRoomId); result.Success = true; result.ResponseData = overviewData; break; case "ToggleControls": var dbMiningRoomx = db.MiningRooms.FirstOrDefault(ln => ln.Id == mrRequest.MiningRoomId); if (dbMiningRoomx.ServiceSetting.Owner == Request.User || Request.User.IsInRole("Admin")) { bool isOn = bool.Parse(mrRequest.CommandData.ToString()); dbMiningRoomx.ShowControls = isOn; db.SaveChanges(); var vm = GetOverview(mrRequest.MiningRoomId); SendRoomInfoUpdateToClients(vm, dbMiningRoomx.ServiceSetting.ServiceUrl.ToLower()); } break; case "CreateRoom": result = CreateMiningRoom(Request.User, mrRequest); break; case "UpdateDescription": if (!Request.User.Identity.IsAuthenticated) { result.Success = false; result.ErrorMessage = SignalRService.Localization.BaseResource.Get("MsgLoginFirst"); break; } var dbRoom = db.MiningRooms.FirstOrDefault(ln => ln.Id == mrRequest.MiningRoomId); if (dbRoom == null) { result.Success = false; result.ErrorMessage = "Invalid RoomId"; } if (!Utils.ServiceUtils.IsServiceOwner(dbRoom.ServiceSetting.ID, Request.User.Identity.Name)) { if (!Request.User.IsInRole("Admin")) { result.Success = false; result.ErrorMessage = "No Permission"; break; } } string contentData = ((dynamic)mrRequest.CommandData).Content; string cultureName = ((dynamic)mrRequest.CommandData).Culture; var localizationKey = GetDescriptionKeyForRoom(dbRoom.Id); Repositories.LocalizationRepository localizationRepo = new Repositories.LocalizationRepository(db); if (localizationRepo.Exists(localizationKey, cultureName)) { var dbItem = localizationRepo.Get(localizationKey, cultureName); dbItem.Value = contentData; localizationRepo.Update(dbItem, Request.User.Identity.Name); Localization.UiResources.Instance.removeFromCache(localizationKey, cultureName); result.Success = true; result.Message = "description updated successfuly"; } else { localizationRepo.Create(new Models.LocalizationModel() { CreationDate = DateTime.Now, Archived = false, Culture = cultureName, Key = localizationKey, LastModDate = DateTime.Now, ModUser = Request.User.Identity.Name, TranslationStatus = Enums.EnumTranslationStatus.Undefined, Value = contentData, WasHit = false }, Request.User.Identity.Name); result.Success = true; result.Message = "creating localizationItem success."; } break; default: break; } return(result); }