public IActionResult Import(string filename) { //Contrôle token et company et création d'un repository var repository = APIRepository.Create(HttpContext.GetTokenAsync("access_token").Result, ApplicationSettings.CompanyId); if (repository.ErrorCode == "TOKENEXPIRED") { return(RedirectToRoute(Tools.forceAuthentication)); } if (repository.ErrorMessage != "") { return(View("Error", new Error(repository.ErrorMessage))); } //Chargement des paramètres (liste journaux, exercices, conditions réglement) et contenu fichier depuis stockage effectué par l'étape Controle var existing = ApplicationSettings.ImportExistingValues; var errors = ApplicationSettings.ImportErrors; var pieces = ApplicationSettings.ImportPieces; // [API13] Import d'écritures - Traitement: import des écritures valides. AddPieces(repository, pieces, errors, existing); if (ApplicationSettings.ApiError != null) { return(View("Error", ApplicationSettings.ApiError)); } ViewBag.errors = errors; ViewBag.pieces = pieces; ViewBag.nextStep = 5; ViewBag.filename = ApplicationSettings.ImportFileName; return(View("Index")); }
public IActionResult Add() { ViewBag.Action = "add"; //Contrôle token et company et création d'un repository var repository = APIRepository.Create(HttpContext.GetTokenAsync("access_token").Result, ApplicationSettings.CompanyId); if (repository.ErrorCode == "TOKENEXPIRED") { return(RedirectToRoute(Tools.forceAuthentication)); } if (repository.ErrorMessage != "") { return(View("Error", new Error(repository.ErrorMessage))); } // [API06] Récupération des paramètres LoadParameters(repository); Customer customer = new Customer { Adresse = new Address(), Telecom = new Telecom() }; return(View(customer)); }
public async Task <ActionResult> ChangeReferalid(string memberid, string reqtype, string userid, string passwd) { getnameByreferalid obj = new getnameByreferalid(); ResponseGetNameReferialid res = new ResponseGetNameReferialid(); General clsgen = new General(); this._APIManager = new APIRepository(); obj.memberid = memberid; obj.reqtype = "getmemname"; obj.userid = ""; obj.passwd = ""; string jsonResponse = string.Empty; string output1 = JsonConvert.SerializeObject(obj); HttpWebRequest reponse; reponse = clsgen.JSON(output1, "https://cpanel.gohappynetwork.com/DTProcess.aspx"); jsonResponse = clsgen.GetResponse(reponse); res = JsonConvert.DeserializeObject <ResponseGetNameReferialid>(jsonResponse); ApiPinCoderesponse Code = new ApiPinCoderesponse(); { Code.request = output1; Code.response = jsonResponse; Code.url = "https://cpanel.gohappynetwork.com/DTProcess.aspx"; } return(Json(jsonResponse)); }
public IActionResult Edit(string id) { ViewBag.Action = "edit"; //Contrôle token et company et création d'un repository var repository = APIRepository.Create(HttpContext.GetTokenAsync("access_token").Result, ApplicationSettings.CompanyId); if (repository.ErrorCode == "TOKENEXPIRED") { return(RedirectToRoute(Tools.forceAuthentication)); } if (repository.ErrorMessage != "") { return(View("Error", new Error(repository.ErrorMessage))); } // [API06] Récupération des paramètres LoadParameters(repository); Customer customer = GetCustomerById(id, repository); if (Customer.IsNull(customer) || Customer.IsEmpty(customer)) { return(View("Error", new Error(Resource.CLIENT_NOTFOUND))); } return(View(customer)); }
/// <summary> /// Controle si le numero de Tiers saisi existe et si oui retourne un message d'erreur /// </summary> /// <param name="numero"> Le compte tiers à tester </param> /// <param name="repository">Le repository </param> /// <returns>Un string avec le message formaté si le tiers existe déjà ou une chaine vide si inexistant</returns> private string ControlTiersAlreadyExist(string numero, APIRepository repository) { Dictionary <string, string> options = new Dictionary <string, string>(); options.Add("$filter", "numero eq '" + numero.ToUpper() + "'"); options.Add("$select", "numero,intitule,adresse,type"); var result = repository.Get(repository.CompanyId, "tiers", options); if (!Tools.IsSuccess(result)) { return("ERROR:" + Tools.FormateErrorApi(result)); } var values = result.GetJSONResult()["value"]; if (!values.HasValues) { return(""); } return(Resource.CLIENT_ALREADY_EXIST. Replace("{numero}", "<b>" + values[0]["numero"].ToString() + "</b>"). Replace("{intitule}", "<b>" + values[0]["intitule"].ToString() + "</b>"). Replace("{type}", "<b>" + values[0]["type"].ToString() + "</b>")); }
/// <summary> /// Ophalen van de lijst van campussen. /// </summary> private async Task GetCampusList() { //List<Campus> list = new List<Campus> //{ // new Campus() // { // Address = "Graaf Karel de Goedelaan 5 8580 Kortrijk", // UCODE = "Campus GKG", // Picture = "Campus_GKG.jpg" // }, // new Campus() // { // Address = "Graaf Karel de Goedelaan 5 8580 Kortrijk", // UCODE = "Campus GKG", // Picture = "Campus_GKG.jpg" // }, // new Campus() // { // Address = "Graaf Karel de Goedelaan 5 8580 Kortrijk", // UCODE = "Campus GKG", // Picture = "Campus_GKG.jpg" // }, // new Campus() // { // Address = "Graaf Karel de Goedelaan 5 8580 Kortrijk", // UCODE = "Campus GKG", // Picture = "Campus_GKG.jpg" // }, // new Campus() // { // Address = "Graaf Karel de Goedelaan 5 8580 Kortrijk", // UCODE = "Campus GKG", // Picture = "Campus_GKG.jpg" // }, // new Campus() // { // Address = "Graaf Karel de Goedelaan 5 8580 Kortrijk", // UCODE = "Campus GKG", // Picture = "Campus_GKG.jpg" // }, // new Campus() // { // Address = "Graaf Karel de Goedelaan 5 8580 Kortrijk", // UCODE = "Campus GKG", // Picture = "Campus_GKG.jpg" // }, // new Campus() // { // Address = "Graaf Karel de Goedelaan 5 8580 Kortrijk", // UCODE = "Campus GKG", // Picture = "Campus_GKG.jpg" // } //}; //CampusList = new ObservableCollection<Campus>(list); List <Campus> campusList = await APIRepository.GetCampusList(); CampusList = new ObservableCollection <Campus>(campusList); }
/// <summary> /// Retourne un message d'erreur si le compte général de l'écriture courante est invalide. /// </summary> /// <param name="repositor /// y"> Le repository permettant les appels API. </param> /// <param name="companyId"> La société concernée par les appels API. </param> /// <returns> Un message d'erreur si le compte général de l'écriture comptable courante est invalide. </returns> public void ControlGeneralAccount(APIRepository repository, Dictionary <string, string> existingCompte, Dictionary <string, string> existingInconnuCompte, List <string> errors) { if (existingCompte.ContainsKey(this.Compte)) { return; } if (existingInconnuCompte.ContainsKey(this.Compte)) { errors.Add("Le numéro de compte '" + this.Compte + "' est inconnu."); return; } Dictionary <string, string> options = new Dictionary <string, string>(); options.Add("$top", "1"); options.Add("$filter", "numero eq '" + this.Compte + "'"); var resultat = repository.Get(repository.CompanyId, "comptes", options).GetJSONResult()["value"]; if (!resultat.HasValues) { errors.Add("Le numéro de compte '" + this.Compte + "' est inconnu."); existingInconnuCompte.Add(this.Compte, ""); } else { existingCompte.Add(this.Compte, resultat[0]["id"].ToString()); } }
public ContentResult AjaxCalculSolde() { //Contrôle token et company et création d'un repository var repository = APIRepository.Create(HttpContext.GetTokenAsync("access_token").Result, ApplicationSettings.CompanyId, true); if (repository.ErrorMessage != "") { return(Content("ERROR:AjaxCalculSolde : " + repository.ErrorMessage)); } string retour = ""; HttpResponseMessage result; // Récupération du solde pour chaque client dont le numéro est mentionné dans numeros try { foreach (string id in HttpContext.Request.Form.Keys) { result = repository.Get(repository.CompanyId, "clients", null, id, "solde()"); if (!Tools.IsSuccess(result)) { return(Content("ERROR:AjaxCalculSolde : " + Tools.FormateErrorApi(result))); } var solde = Convert.ToDecimal(result.GetJSONResult()["value"].ToString()).ToString("C2", new CultureInfo("fr-FR")); retour += ((retour != "") ? "|" : "") + id + "~" + solde; } } catch (Microsoft.AspNetCore.Server.Kestrel.Core.BadHttpRequestException) { retour = "ERROR:AjaxCalculSolde : 'Unexpected end of request content"; } return(Content(retour)); }
public IActionResult Index() { var repo = new APIRepository(); var shoes = repo.GetShoes(); return(View(shoes)); }
/// <summary> /// Modifie les propriétés du modèle de sorte à ce que le OData Binding soit effectué. /// </summary> /// <param name="repository"></param> /// <param name="line"> L'écriture comptable à exploiter. </param> /// <param name="existing"> L'objet Import contenant codes journaux, modes de réglement [...] connus. </param> private void SetOdataBindings(APIRepository repository, Writing line, Import existing) { // Bind code "journal" var journalId = existing.Codes[line.Code].Id; line.CodeBind = Tools.OdataBind(repository, "journaux", journalId); // Bind "compte général" if (!string.IsNullOrEmpty(line.Compte)) { var accountId = existing.Comptes[line.Compte]; line.CompteBind = Tools.OdataBind(repository, "comptes", accountId); } // Bind id "tiers": Recherche du numero. if (!string.IsNullOrEmpty(line.NumeroTiers)) { var tiersId = existing.Comptes[line.NumeroTiers]; line.NumeroTiersBind = Tools.OdataBind(repository, "tiers", tiersId); } // Bind id de "modeReglement" si il existe. if (!string.IsNullOrEmpty(line.ModeReglement)) { var modeReglementId = existing.IntitulesModesReglement[line.ModeReglement]; line.ModeReglementBind = Tools.OdataBind(repository, "modesReglement", modeReglementId); } }
/// <summary> /// Retourne un message d'erreur si le numéro de tiers de l'écriture courante est invalide. /// </summary> /// <param name="repository"> Le repository permettant les appels API. </param> /// <param name="companyId"> La société concernée par les appels API. </param> /// <returns> Une chaîne indiquant l'erreur si le numéro de tiers est invalide. </returns> public void ControlNoTiers(APIRepository repository, Dictionary <string, string> existingCompte, Dictionary <string, string> existingInconnuCompte, List <string> errors) { if (string.IsNullOrEmpty(this.NumeroTiers) || existingCompte.ContainsKey(this.NumeroTiers)) { return; } if (existingInconnuCompte.ContainsKey(this.NumeroTiers)) { errors.Add("Le numéro de tiers '" + this.NumeroTiers + "' est inconnu."); return; } Dictionary <string, string> options = new Dictionary <string, string>(); options.Add("$top", "1"); options.Add("$filter", "numero eq '" + this.NumeroTiers + "'"); var resultat = repository.Get(repository.CompanyId, "tiers", options).GetJSONResult()["value"]; if (!resultat.HasValues) { errors.Add("Le numéro de tiers '" + this.NumeroTiers + "' est inconnu."); existingInconnuCompte.Add(this.NumeroTiers, ""); } else { existingCompte.Add(this.NumeroTiers, resultat[0]["id"].ToString()); } }
public async Task <ActionResult> GetCityListByState(string Id) { var cityList = new List <R_CityMaster>(); this._APIManager = new APIRepository(); this.model = new Dashboard(); if (string.IsNullOrEmpty(Id)) { return(null); } else { cityList = await this._APIManager.GetCityListById(Id); } if (cityList == null || cityList.Count == 0) { cityList = new List <R_CityMaster>(); if (this.model.Cities == null) { this.model.Cities = new List <R_CityMaster>(); this.model.Cities.Add(new R_CityMaster { cityID = 0, cityName = "-Not Available-" }); } } return(Json(cityList)); }
public async Task <ActionResult> Register() { this.model = new Dashboard(); this._APIManager = new APIRepository(); await this.AssignStateCityList(); return(View(this.model)); }
public IActionResult Search(Summoner player) { player = APIRepository.GetSummonerID(player.SummonerName); APIRepository.GetPlayerStats(player); APIRepository.GetMostPlayed(player); return(View(player)); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2); var repository = new APIRepository(); services.AddSingleton <IRepository>(repository); }
public IActionResult Edit(Customer customer, Address address, Telecom telecom, string id) { ViewBag.Action = "edit"; //Contrôle token et company et création d'un repository var repository = APIRepository.Create(HttpContext.GetTokenAsync("access_token").Result, ApplicationSettings.CompanyId); if (repository.ErrorCode == "TOKENEXPIRED") { return(RedirectToRoute(Tools.forceAuthentication)); } if (repository.ErrorMessage != "") { return(View("Error", new Error(repository.ErrorMessage))); } customer.Adresse = address; customer.Telecom = telecom; customer.Numero = customer.Numero.ToUpper(); // [API06] Récupération des paramètres LoadParameters(repository); if (Customer.IsEmpty(customer)) { ViewBag.ErrorMessage = Resource.CLIENT_MANDATORY_FIELDS; return(View(customer)); } // [API10] Edition des données du client - Envoi des données. customer.ComptePrincipal = Tools.OdataBind(repository, "comptes", customer.ComptePrincipal); // Conversion en données exploitables. var data = JsonConvert.SerializeObject(customer, new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() }); var result = repository.Patch(repository.CompanyId, "clients", data, id); // Si la mise à jour échoue, on affiche une erreur. if (!result.IsSuccessStatusCode) { ViewBag.ErrorMessage = Tools.FormateErrorApi(result); return(View(customer)); } else { // Redirection. return(RedirectToRoute(new { controller = "Customers", action = "Get", id = customer.Id, refresh = Guid.NewGuid().ToString() })); } }
public async Task <ActionResult> LoginOrangeFunction(string returnUrl) { this.model = new Dashboard(); ViewBag.ReturnUrl = returnUrl; this._APIManager = new APIRepository(); await this.AssignStateCityList(); return(View("LoginOrange", this.model)); }
public HttpResponseMessage GetEmployeesData([FromBody] string value) { HttpResponseMessage resultResponse = null; List <EmpDataModel> empData = this.APIServiceRepository.GetEmployeesData(); resultResponse = APIRepository.CreateDataResponse(Request, HttpStatusCode.OK, empData); return(resultResponse); }
public void TestMethod1() { IRepository <Post> repo = new LocalRepository <Post>("posts.json"); Assert.AreEqual(repo.Get().Count(), 100); repo = new APIRepository <Post>("https://jsonplaceholder.typicode.com/posts"); Assert.AreEqual(repo.Get().Count(), 100); }
public async Task <ActionResult> OtherRegister() { this.model = new Dashboard(); this._APIManager = new APIRepository(); await this.AssignOtherAreaCode(""); await this.GetRegilionResponse(""); return(View(this.model)); }
/// <summary> /// Retourne une liste d'erreurs non vide si l'écriture comptable est invalide. /// </summary> /// <param name="repository"> Le repository permettant les appels API. </param> /// <param name="existing"> L'objet Import composé des codes journaux, modes de réglement existants et les dates de l'exercice non clôturé le plus récent. </param> /// <returns> Une liste de chaines comprenant les erreurs si détectés. </returns> public void ControlWriting(APIRepository repository, Import existing, List <string> errorLogs) { ControlCodeJournal(existing.Codes, errorLogs); ControlDate(existing.ExerciceStartDate, existing.ExerciceEndDate, errorLogs); ControlNoPiece(errorLogs); ControlGeneralAccount(repository, existing.Comptes, existing.InconnuComptes, errorLogs); ControlNoTiers(repository, existing.Comptes, existing.InconnuComptes, errorLogs); ControlIntitule(errorLogs); ControlPaymentType(existing.IntitulesModesReglement, errorLogs); ControlMontant(errorLogs); }
//****************************[LECTURE FICHIER IMPORT ET CONTROLE COHERENCE]******************************************************************* /// <summary> /// Lit le fichier ligne par ligne. /// </summary> /// <param name="repository"> Le repository. </param> /// <param name="pieces"> Le dictionnaire de pièces contenant l'id de la pièce et la liste d'écritures. </param> /// <param name="errors"> Le dictionnaire de pièces contenant l'id de la pièce et la liste d'erreurs. </param> /// <param name="existing"> Les données préchargées (obligatoires) lors de l'arrivée sur la page d'import. </param> /// <param name="file"> Le fichier comptable texte importé. </param> private void ReadFile(APIRepository repository, Dictionary <string, List <Writing> > pieces, Dictionary <string, List <string> > errors, Import existing, IFormFile file) { using var reader = new StreamReader(file.OpenReadStream()); var lineNumber = 0; var linePiece = 0; var line = string.Empty; while (!string.IsNullOrEmpty(line = reader.ReadLine())) { lineNumber++; //Si une ligne n'a pas le bon nombre de colonnes on sort une erreur grave et on continue le parcours pour voir si d'autres lignes dans ce cas if (Writing.HasIncorrectNumberOfColumns(line)) { AddErrorToPiece(lineNumber, "Nombre de colonnes incorrect", errors); continue; } var writing = Writing.Create(line); // Contrôle cohérence et alimentation liste erreur. var errorLogs = new List <string>(); writing.ControlWriting(repository, existing, errorLogs); // Ajout de l'écriture dans la pièce avec création préalable d'une nouvelle pièce si JOURNAL|PIECE|DATE n'existe pas dans la liste des pièces. if (!pieces.ContainsKey(writing.Id)) { linePiece = 0; pieces.Add(writing.Id, new List <Writing>()); } pieces[writing.Id].Add(writing); linePiece++; // Ajout des erreurs éventuelles de l'écriture avec création préalable d'une nouvelle liste d'erreurs pour la pièce si n'existe pas déjà if (errorLogs.Count > 0) { AddErrorToPiece(writing.Id, linePiece, lineNumber, errorLogs, errors); } } //Maintenant qu'on a dispatché les lignes en pièces, on peut vérifier si chaque pièce est équilibrée foreach (var piece in pieces) { if (!IsBalanced(piece)) { AddErrorToPiece(piece.Key, "La pièce n'est pas équilibrée.", errors); } } reader.Close(); }
public HttpResponseMessage GetSmartManAllEmployeeDataJson() { try { var empList = this.PublicRepository.GetSmartManEmpPartialData(); return(APIRepository.ListRetrieved(this.Request, empList)); } catch (Exception ex) { return(APIRepository.ErrorRequest(this.Request, ex.Message)); } }
public HttpResponseMessage GetMenuInformationJson() { try { var menuList = this.PublicRepository.GetMenuPartialData(); return(APIRepository.ListRetrieved(this.Request, menuList)); } catch (Exception ex) { return(APIRepository.ErrorRequest(this.Request, ex.Message)); } }
public ContentResult CheckClientNumber(string numero) { //Contrôle token et company et création d'un repository var repository = APIRepository.Create(HttpContext.GetTokenAsync("access_token").Result, ApplicationSettings.CompanyId); if (repository.ErrorMessage != "") { return(Content("ERROR:AjaxCalculSolde : " + repository.ErrorMessage)); } return(Content(ControlTiersAlreadyExist(numero, repository))); }
public async Task <ActionResult> GetRegilionResponse(string RadioValue) { ReligionReqType req = new ReligionReqType(); General clsgen = new General(); this._APIManager = new APIRepository(); RegligionResponse Regilion = new RegligionResponse(); string jsonResponse = string.Empty; if (RadioValue == "R") { req.reqtype = "religion"; } else if (RadioValue == "N") { req.reqtype = "nonreligion"; } else if (RadioValue == "") { this.model.religion = new List <Religion>(); this.model.religion.Add(new Religion { id = "0", religion = "-Not Available-" }); } string output1 = JsonConvert.SerializeObject(req); HttpWebRequest reponse; reponse = clsgen.JSON(output1, "https://cpanel.gohappynetwork.com/DTProcess.aspx"); jsonResponse = clsgen.GetResponse(reponse); Regilion = JsonConvert.DeserializeObject <RegligionResponse>(jsonResponse); if (RadioValue == "N") { Regilion.nonreligions.RemoveAt(0); } else if (RadioValue == "R") { Regilion.religions.RemoveAt(0); } ApiPinCoderesponse Code = new ApiPinCoderesponse(); { Code.request = output1; Code.response = jsonResponse; Code.url = "https://cpanel.gohappynetwork.com/DTProcess.aspx"; } var statusID = await this._APIManager.SaveAPIRequest(Code); return(Json(Regilion)); }
public ContentResult AjaxCalculSoldeEtDates() { //Contrôle token et company et création d'un repository var repository = APIRepository.Create(HttpContext.GetTokenAsync("access_token").Result, ApplicationSettings.CompanyId, true); if (repository.ErrorMessage != "") { return(Content("ERROR:AjaxCalculSoldeEtDates : " + repository.ErrorMessage)); } string retour, value; HttpResponseMessage result; string id = HttpContext.Request.Form["Id"]; // Récupération du solde et des dates pour le client courant try { result = repository.Get(repository.CompanyId, "clients", null, id, "solde()"); if (!Tools.IsSuccess(result)) { return(Content("ERROR:AjaxCalculSoldeEtDates Solde : " + Tools.FormateErrorApi(result))); } value = result.GetJSONResult()["value"].ToString(); retour = Convert.ToDecimal(result.GetJSONResult()["value"].ToString()).ToString("C2", new CultureInfo("fr-FR")); result = repository.Get(repository.CompanyId, "clients", null, id, "derniereFacture()"); if (!Tools.IsSuccess(result)) { return(Content("ERROR:AjaxCalculSoldeEtDates DateFacture : " + Tools.FormateErrorApi(result))); } value = result.GetJSONResult()["value"].ToString(); retour += "|" + ((Convert.ToDateTime(value) == DateTime.MinValue) ? "": Convert.ToDateTime(value).ToString("d", new CultureInfo("fr-FR"))); result = repository.Get(repository.CompanyId, "clients", null, id, "dernierReglement()"); if (!Tools.IsSuccess(result)) { return(Content("ERROR:AjaxCalculSoldeEtDates DateReglement : " + Tools.FormateErrorApi(result))); } value = result.GetJSONResult()["value"].ToString(); retour += "|" + ((Convert.ToDateTime(value) == DateTime.MinValue) ? "" : Convert.ToDateTime(value).ToString("d", new CultureInfo("fr-FR"))); } catch (Microsoft.AspNetCore.Server.Kestrel.Core.BadHttpRequestException) { retour = "ERROR:AjaxCalculSoldeEtDates : 'Unexpected end of request content"; } return(Content(retour)); }
public IActionResult Index(Request model) { //Contrôle token et company et création d'un repository var repository = APIRepository.Create(HttpContext.GetTokenAsync("access_token").Result, ApplicationSettings.CompanyId); if (repository.ErrorCode == "TOKENEXPIRED") { return(RedirectToRoute(Tools.forceAuthentication)); } if (repository.ErrorMessage != "") { return(View("Error", new Error(repository.ErrorMessage))); } return(LoadCompaniesAndMetadata(repository, model)); }
/// <summary> /// Récupération des paramètres (type comptes généraux, pays). Alimente les propriétés de ViewBag. /// </summary> /// <param name="repository">Repository courant</param> public void LoadParameters(APIRepository repository) { Dictionary <string, string> options = new Dictionary <string, string>(); //Liste des comptes généraux commençant par 41 options.Clear(); options.Add("$select", "id,type,numero"); options.Add("$filter", "startswith(numero,'41') and sommeil eq false"); options.Add("$orderby", "numero"); ViewBag.Accounts = repository.Get(repository.CompanyId, "comptes", options).GetJSONResult()["value"]; //Liste des pays options.Clear(); options.Add("$select", "intitule"); options.Add("$orderby", "intitule"); ViewBag.Pays = repository.Get(repository.CompanyId, "pays", options).GetJSONResult()["value"]; }
//FIELDS //CONSTRUCTORS //METHODS public static IStockPricesRepository GetRepository(string repositoryType) { IStockPricesRepository repository = null; switch (repositoryType) { case "API": repository = new APIRepository(); break; case "CSV": repository = new CSVRepository(); break; default: throw new ArgumentException("Invalid Repository Type Requested"); } return(repository); }