cauca-9-1-1 / survip-webapi Goto Github PK
View Code? Open in Web Editor NEWSURVI-Prevention Web API
License: MIT License
SURVI-Prevention Web API
License: MIT License
Comment gérer la mise à jour de localization:
Error when approving inspection on the building detail.
If the building detail is not the same of the inspection_buidling_detail one we got an error of foreignkey that blocked the approvment.
Reproduce only on one inspection -> put more validation when copying data from the inspection
No picture are ever shown in the report even though the image frame is there.
We need to double check the code to make sure we're correctly generating the img tag.
Lorsque l'on execute la migration de données suite à un reset de la BD les permission sont déactiver pour l'usager admin.
Il faudrait valider que cet usager et voire même le groupe Administration ai accès à pratiquement tout.
Également hardcoder tous les ids plutôt que d'utiliser l'incrémentation des guid tel qu'on le fait actuellement.
L'API ASP.NET Core ne tiens pas compte de hosting.json par défaut pour pouvoir controller le port et l'ip sur lesquels le service écoute sur le réseau.
Ce point ne cause aucune erreur dans l'affichage car un questionnaire n'est pas réactivable.
Lorsque l'on supprime un questionnaire celui-ci est desactivé par le CrudService, cependant ce dernier ne descends pas en récursive dans les enfants de l'entité.
Modifications:
InspectionQuestionService.GetInspectionQuerySummaryListLocalized.
Il faut une liste sous forme de texte à afficher à l'utilisateur.
Pays, Provinces, Régions
Importer les SSI/MRC suivants:
On importe:
Lorsqu'on valide le token, on ne valide aucunement via la BD si le token est encore valide, ce qui fait qu'on pourrait créer un token via un autre API qui utilise la même clef d'encodage et que ça passerait comme valide.
Il faudrait voir pour permettre la validation en BD du token. Je n'ai pas la moindre idée de comment intégrer ça dans le processus d'authentification par token d'ASP.net.
Parent, enfant avec la relation.
Dans BaseModel on ajoute:
Créer la nouvelle migration.
Et on modifie tous les services pour que la suppression et la modification renseignent ces trois champs (LastModifiedOn, IdWebuserLastModifiedBy ).
IdWebuserLastModifiedBy seront aussi mis à jour sur la création.
Il faut clarifier les statuts de visites et d'inspection et leur utilisation.
Ajouter une classe abstraite BaseImportedModel qui héritera de BaseModel et qui aura ces champs supplémentaires :
o IdExtern : string
o ImportedOn : dateTime?
o HasBeenModified : bool
Tous les modèles qui seront importés hériteront désormais de cette nouvelle classe abstraite plutôt que de BaseModel.
Créer la migration.
Et on modifie tous les services pour que l'ajout, la suppression et la modification renseignent HasBeenModified).
We need to delete everything in inspection_building (and children) when:
t634w
Setup la migration au lieu de la in house méthode utilisée pour générer la BD
See this page to migrate from 2.0 to 2.1:
https://docs.microsoft.com/en-us/aspnet/core/migration/20_21?view=aspnetcore-2.1
Alternative:
JsReport: https://stackoverflow.com/a/45840308/6347013 (https://jsreport.net/learn/dotnet)
DinkToPdf : https://github.com/rdvojmoc/DinkToPdf
Idée:
On pourrait avoir un type de question qui serait "réponses enfants". Ce type de question aurait alors une série de question enfant.
Mais quand on regarde la configuration actuelle, même les questions qui ont rapport à un détecteur de fumée ont de l'influence sur les suivantes. Si on répond oui à "Est-il alimenté a un pile", on a pas la même question suivante que si on répond non.
Le premier lot de placeholders à être ajoutés seront les informations disponibles lors de la validation d'une inspection. On pourra par la suite raffiner la granularité des palceholders au besoin.
Il faudrait favoriser l’envoie du nom d’usager et de son mot de passe dans le « POST body » au lieu de l’url afin d’éviter que le mot de passe ne soit enregistré dans la cache.
Il y a peu de contrôle d’exception dans les différents services. Ceci implique qu’un accès au « Context » mal formulé, ou bien une donnée absente dans la base de données fait planter l’application à tout coups, et ce, avec très peu de verbosité.
Exemple : Dans la méthode « GetListActive » du fichier « WebuserService », le nom de famille est obtenu dynamiquement à l’aide de « lastname = users.Attributes.Where(a => a.AttributeName=="last_name") ». Par la suite, il n’y a pas de vérification afin de valider que « lastname » n’est pas nulle avant d’accéder à « lastname.AttributeValue ». Bien que tous les utilisateurs aient les attributs de bases (first_name, last_name, reset_password) associés, la requête retourne des valeurs nulles et l’absence de vérification lance une exception qui n’est pas attrapée.
When adding a picture to a building the picture sent doesn't have a id.
Modification to do:
When deleting a picture in particular risk of an inspection. The building particular risk picture is deactivated but the picture in inspection picture is deleted, so du to cascading destruction the particular risk picture id finally deleted.
Is that ok ?
Créer la méthode d'import dans le controller ainsi que dans le service(basé sur une liste de provinces)
Création des services de validation et d'import.
Création des Units tests.
Managing the field measure_type from discrimant :
Modify request of inspection building course lanes to return only active course lanes in getCompleteCourses, or create a new method to return the active.
When deleting a courseLane -> the course lane is removed from db instead of deactivated
-> InspectionBuildingCourseService -> SaveCompleteCourses
Plusieurs méthodes sont non implémentées dans l'API, souvent à cause des méthode abstraite du BaseCrudService (Get(id), GetList()). Même si ces méthodes ne sont appelées que dans l'API test, il faut y apporter des validations pour que celle-ci ne causent pas d'erreur.
Modification:
Test
Les entités ci-dessous n'ont pas de model d'import car la plupart sont différentes ou non existantes dans la RAO(pour le moment)
Building's picture.
BuildingSprinkler + sprinkler type.
BuildingAnomaly, BuildingAnomalyPicture + Picture
BuildingDetails + detail's types (ConstructionType, ConstructionFireResistanceType, RoofType, RoofMaterialType, SidingType, BuildingType) + implantation plan
BuildingParticularRisk + pictures
Bref, on prend l'objet intermédiaire et on le transforme en objet "prévention" et fait l'insert, update ou delete approprié.
Because there's no mapping, EF doesn't know it has to use IdFireSafetyDepartment from the model and create a field named fire_safety_department_id in the database.
If the inspection configuration is not set up for the target risk level, the API fail the transaction of putting it to ready status.
Ex: create an inspection for a risk level not configured.
So we need to copy the parent and its children when creating the inspection :
There's no need to change anything on the mobile application for this as all of the controller are already correctly named (like InspectionBuildingPnapController), but we need to change all of these queries so they use the copied data or something.
Il faut créer une qrequête spécifique pour les voies pour les controles de type lookup sans limitation. Les lookup gère le chargement des données et sont donc plus optimisé au nombreux résultats.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.