/// <summary> /// Actualiza el valor en un punto de la matriz /// </summary> /// <param name="puntoActualizar"></param> /// <returns></returns> public IMatrizDTO UpdateMatriz(IPuntoDTO puntoActualizar) { IMatrizDTO matriz = RecuperarJson(); matriz.Matriz[puntoActualizar.x, puntoActualizar.y, puntoActualizar.z] = puntoActualizar.valor; GuardarJson(matriz); return(matriz); }
/// <summary> /// Metodo que guarda el arreglo en formato JSon, se supone que existe la ruta y se tienen los permisos de lectura y escritura /// </summary> /// <param name="matriz"></param> private void GuardarJson(IMatrizDTO matriz) { string rutaGuardado = Constantes.RUTA_ARCHIVO; string output = JsonConvert.SerializeObject(matriz.Matriz); using (StreamWriter writer = File.CreateText(rutaGuardado)) { writer.WriteLine(output); } }
/// <summary> /// Metodo Privado que inicializa la matriz en ceros /// </summary> /// <param name="matriz"></param> private void inicializa(IMatrizDTO matriz) { for (int i = 0; i < matriz.Matriz.GetLength(1); i++) { for (int j = 0; j < matriz.Matriz.GetLength(1); j++) { for (int k = 0; k < matriz.Matriz.GetLength(1); k++) { matriz.Matriz[i, j, k] = 0; } } } }
/// <summary> /// Metodo que recupera el archivo que contiene la matriz /// </summary> public IMatrizDTO RecuperarJson() { IMatrizDTO matriz = new IMatrizDTO(); string filepath = Constantes.RUTA_ARCHIVO; string result = string.Empty; using (StreamReader r = new StreamReader(filepath)) { var matrizJson = r.ReadToEnd(); var salida = JsonConvert.DeserializeObject <long[, , ]>(matrizJson); matriz.Matriz = salida; return(matriz); } }
/// <summary> /// Metodo que suma los valors dentro de dos puntos en el cubo /// </summary> /// <param name="puntoInicial">Punto inicial</param> /// <param name="puntoFinal">Punto Final</param> /// <returns>La sma de los valores</returns> public long QueryMatiz(IPuntoDTO puntoInicial, IPuntoDTO puntoFinal) { long respuesta = 0; IMatrizDTO matriz = this.RecuperarJson(); for (int i = puntoInicial.x; i <= puntoFinal.x; i++) { for (int j = puntoInicial.y; j <= puntoFinal.y; j++) { for (int k = puntoInicial.z; k <= puntoFinal.z; k++) { respuesta += matriz.Matriz[i, j, k]; } } } return(respuesta); }
/// <summary> /// Metodo que invoca la actulizacion de un punto en la Matriz /// </summary> /// <param name="matriz"></param> /// <param name="operador"></param> /// <returns></returns> private IMatrizDTO ActulizeMatriz(IMatrizDTO matriz, string operador) { int number; long valor; IPuntoDTO punto = new IPuntoDTO(); String[] evaluar = operador.Split(' '); int.TryParse(evaluar[1], out number); punto.x = number; int.TryParse(evaluar[2], out number); punto.y = number; int.TryParse(evaluar[3], out number); punto.z = number; long.TryParse(evaluar[4], out valor); punto.valor = valor; matriz = _matrizBL.Value.UpdateMatriz(punto); return(matriz); }
/// <summary> /// Actualiza un punto en la matriz /// </summary> /// <param name="puntoActualizar"></param> /// <returns></returns> public IMatrizDTO UpdateMatriz(IPuntoDTO puntoActualizar) { IMatrizDTO matriz = _matrizDAL.Value.UpdateMatriz(puntoActualizar); return(matriz); }
/// <summary> /// Trae los datos del archivo guardado /// </summary> /// <returns></returns> public IMatrizDTO RecuperarJson() { IMatrizDTO matriz = _matrizDAL.Value.RecuperarJson(); return(matriz); }
/// <summary> /// Metodo que inicaliza la matriz /// </summary> /// <param name="parametro"></param> /// <returns></returns> public IMatrizDTO Inicializar(IParametrosDTO parametro) { IMatrizDTO matriz = _matrizDAL.Value.Inicializar(parametro); return(matriz); }