private async void Save() { try { if (SelectedOperator == null) { Alert.Show("Debe seleccionar un operador", "Aceptar"); return; } if (string.IsNullOrWhiteSpace(OperatorPassword)) { Alert.Show("Debe ingresar el password del operador", "Aceptar"); return; } UserDialogs.Instance.ShowLoading("Validando operador...", MaskType.Black); ApiSrv = new Services.ApiService(ApiConsult.ApiAuth); if (!await ApiIsOnline()) { UserDialogs.Instance.HideLoading(); Toast.ShowError(AlertMessages.Error); return; } else { if (!await GetTokenSuccess()) { UserDialogs.Instance.HideLoading(); Toast.ShowError(AlertMessages.Error); return; } else { TokenPbAuth = TokenGet; LoginPb loginPb = new LoginPb { Username = this.SelectedOperator.IdUser, Password = this.OperatorPassword }; Response resultValidateOperator = await ApiSrv.AuthenticateProbath(TokenPbAuth.Key, loginPb); if (!resultValidateOperator.IsSuccess) { UserDialogs.Instance.HideLoading(); Toast.ShowError(resultValidateOperator.Message); return; } else { OperatorObject operatorObject = JsonConvert.DeserializeObject <OperatorObject>(Crypto.DecodeString(resultValidateOperator.Data)); if (!operatorObject.IsValid) { UserDialogs.Instance.HideLoading(); Alert.Show(AlertMessages.UserInvalid); return; } else { UserDialogs.Instance.HideLoading(); UserDialogs.Instance.ShowLoading("Validando instancias...", MaskType.Black); ApiSrv = new Services.ApiService(ApiConsult.ApiMenuB); if (!TokenValidator.IsValid(TokenMenuB)) { if (!await ApiIsOnline()) { UserDialogs.Instance.HideLoading(); Toast.ShowError(AlertMessages.Error); return; } else { if (!await GetTokenSuccess()) { UserDialogs.Instance.HideLoading(); Toast.ShowError(AlertMessages.Error); return; } else { TokenMenuB = TokenGet; } } } StringBuilder Instances = new StringBuilder(); StringBuilder InstancesRunning = new StringBuilder(); foreach (InstanceRunningItem instanceRunningItem in InstanceRunningItems) { Instances.Append(instanceRunningItem.IdInstance); Instances.Append(","); if (string.Compare(instanceRunningItem.RunningDisplay, "SI") == 0) { InstancesRunning.Append(instanceRunningItem.IdInstance); InstancesRunning.Append(","); } } if (!AppHelper.UserIsSupervisor(operatorObject)) { OperatorChangeUserIsInAllInstancesQueryValues operatorChangeUserIsInAllInstancesQueryValues = new OperatorChangeUserIsInAllInstancesQueryValues() { IdLog = this.LogItem.IdLog, IdUser = PbUser.IdUser, Instances = Instances.ToString() }; Response resultOperatorChangeUserIsInAllInstances = await ApiSrv.GetOperatorChangeUserIsInAllInstances(TokenMenuB.Key, operatorChangeUserIsInAllInstancesQueryValues); if (!resultOperatorChangeUserIsInAllInstances.IsSuccess) { UserDialogs.Instance.HideLoading(); Toast.ShowError(AlertMessages.Error); return; } else { UserInInstances = JsonConvert.DeserializeObject <List <OperatorChangeUserIsInAllInstances> >(Crypto.DecodeString(resultOperatorChangeUserIsInAllInstances.Data)); if (!UserInInstances[0].UserIsInAllInstances) { UserDialogs.Instance.HideLoading(); Alert.Show(string.Format("Usted no tiene permisos para ejecutar en todas las instancias que tiene asignada el operador: {0}", PbUser.IdUser), "Aceptar"); return; } } } if (InstancesRunning.Length > 0) { UserDialogs.Instance.HideLoading(); UserDialogs.Instance.ShowLoading("Cambiando al operador seleccionado...", MaskType.Black); ApiSrv = new Services.ApiService(ApiConsult.ApiMenuB); if (!TokenValidator.IsValid(TokenMenuB)) { if (!await ApiIsOnline()) { UserDialogs.Instance.HideLoading(); Toast.ShowError(AlertMessages.Error); return; } else { if (!await GetTokenSuccess()) { UserDialogs.Instance.HideLoading(); Toast.ShowError(AlertMessages.Error); return; } else { TokenMenuB = TokenGet; } } } //string MyIp; //foreach (IPAddress iPAddress in Dns.GetHostAddresses(Dns.GetHostName())) //{ // MyIp = iPAddress.ToString(); //} OperatorChangeQueryValues operatorChangeQueryValues = new OperatorChangeQueryValues() { IdLog = this.LogItem.IdLog, NewIdUser = operatorObject.IdUser, Instances = Instances.ToString(), OldIdUser = PbUser.IdUser, StartDate = ConvertStartDateToSp(this.LogItem.ExecutionDateTime), ClientIp = "127.0.0.1" }; Response resultOperatorChange = await ApiSrv.GetOperatorChange(TokenMenuB.Key, operatorChangeQueryValues); if (!resultOperatorChange.IsSuccess) { UserDialogs.Instance.HideLoading(); Toast.ShowError(AlertMessages.Error); return; } else { OperatorChanges = JsonConvert.DeserializeObject <List <OperatorChange> >(Crypto.DecodeString(resultOperatorChange.Data)); if (!OperatorChanges[0].IsSuccess) { UserDialogs.Instance.HideLoading(); Alert.Show(string.Format("Ocurrió un error al intentar cambiar el operador actual por: {0}", operatorObject.IdUser), "Aceptar"); return; } this.SelectedOperator = null; this.OperatorPassword = string.Empty; UserDialogs.Instance.HideLoading(); Alert.Show(string.Format("Cambio de operador satisfactorio!"), "Aceptar"); } } else { UserDialogs.Instance.HideLoading(); Alert.Show(string.Format("No hay instancias en ejecución!"), "Aceptar"); } } } } } } catch //(Exception ex) { Toast.ShowError(AlertMessages.Error); } }
public async Task <Response> GetOperatorChangeUserIsInAllInstances(string accessToken, OperatorChangeUserIsInAllInstancesQueryValues QueryValues) { return(await HttpPost(accessToken, this.ApiControllerSet, ApiMethod.GetOperatorChangeUserIsInAllInstances, QueryValues)); }