public InventarioMant() { InitializeComponent(); MostrarInv(); EnableButtons(); Colores(); Titulo(); _apiPost = new ApiPost(); _apiPut = new ApiPut(); }
/// <summary> /// Generic Handler for the MockAPIs /// </summary> private async Task <ApiResponse> ProcessEntity <T>(ApiPost <T> entity) where T : CsvBaseObject { Logger.Here().LogInformation($"Recieved {entity.Status} for {entity.EntityType}: {JsonConvert.SerializeObject(entity)}"); // simulate time to respond await Task.Delay(100); ApiResponse response = new ApiResponse { Success = true, TargetId = entity.TargetId ?? System.Guid.NewGuid().ToString(), }; Logger.Here().LogInformation($"Response to {entity.EntityType}: {JsonConvert.SerializeObject(response)}"); return(response); }
public static User FromMetaPost( ITextHelpers textHelpers, IResourceCacheService resourceCacheService, ApiPost <MetaPostContent> metaPost) { Ensure.Argument.IsNotNull(metaPost, nameof(metaPost)); var dateNow = DateTime.UtcNow; var metaContent = metaPost.Content; return(new User(resourceCacheService) { Id = textHelpers.GenerateUniqueId(), CreatedAt = dateNow, OriginalCreatedAt = dateNow, Entity = metaContent.Entity }); }
public List <ApiPost> Get() { var getPost = new List <ApiPost>(); var postData = _postService.GetAll().ToList(); if (postData != null) { foreach (var item in postData) { var apiPost = new ApiPost(); apiPost.Title = item.Title; apiPost.UserId = item.UserId; apiPost.CategoryId = item.CategoryId; apiPost.ClickCount = item.ClickCount; getPost.Add(apiPost); } } return(getPost); }
private async Task ApplyLine <T>(DistrictRepo repo, DataSyncLine line) where T : CsvBaseObject { switch (line.LoadStatus) { case LoadStatus.None: Logger.Here().LogWarning($"None should not be flagged for Sync: {line.RawData}"); return; } ApiPostBase data; var apiManager = new ApiManager(repo.District.LmsApiBaseUrl) { ApiAuthenticator = ApiAuthenticatorFactory.GetApiAuthenticator(repo.District.LmsApiAuthenticatorType, repo.District.LmsApiAuthenticationJsonData) }; if (line.Table == nameof(CsvEnrollment)) { var enrollment = new ApiEnrollmentPost(line.RawData); CsvEnrollment csvEnrollment = JsonConvert.DeserializeObject <CsvEnrollment>(line.RawData); DataSyncLine cls = repo.Lines <CsvClass>().SingleOrDefault(l => l.SourcedId == csvEnrollment.classSourcedId); DataSyncLine usr = repo.Lines <CsvUser>().SingleOrDefault(l => l.SourcedId == csvEnrollment.userSourcedId); var map = new EnrollmentMap { classTargetId = cls?.TargetId, userTargetId = usr?.TargetId, }; // this provides a mapping of LMS TargetIds (rather than sourcedId's) enrollment.EnrollmentMap = map; enrollment.ClassTargetId = cls?.TargetId; enrollment.UserTargetId = usr?.TargetId; // cache map in the database (for display/troubleshooting only) line.EnrollmentMap = JsonConvert.SerializeObject(map); data = enrollment; } else if (line.Table == nameof(CsvClass)) { var classCsv = JsonConvert.DeserializeObject <CsvClass>(line.RawData); // Get course & school of this class var course = repo.Lines <CsvCourse>().SingleOrDefault(l => l.SourcedId == classCsv.courseSourcedId); var courseCsv = JsonConvert.DeserializeObject <CsvCourse>(course.RawData); // Get Term of this class // TODO: Handle multiple terms, termSourceIds can be a comma separated list of terms. var term = repo.Lines <CsvAcademicSession>().SingleOrDefault(s => s.SourcedId == classCsv.termSourcedIds); var org = repo.Lines <CsvOrg>().SingleOrDefault(o => o.SourcedId == classCsv.schoolSourcedId); var _class = new ApiClassPost(line.RawData) { CourseTargetId = course.TargetId, SchoolTargetId = org.TargetId, TermTargetId = string.IsNullOrWhiteSpace(term.TargetId) ? "2018" : term.TargetId, //TODO: Add a default term setting in District Entity Period = classCsv.periods }; data = _class; } else { data = new ApiPost <T>(line.RawData); } data.DistrictId = repo.District.TargetId; data.DistrictName = repo.District.Name; data.LastSeen = line.LastSeen; data.SourcedId = line.SourcedId; data.TargetId = line.TargetId; data.Status = line.LoadStatus.ToString(); var response = await apiManager.Post(GetEntityEndpoint(data.EntityType.ToLower(), repo), data); if (response.Success) { line.SyncStatus = SyncStatus.Applied; if (!string.IsNullOrEmpty(response.TargetId)) { line.TargetId = response.TargetId; } line.Error = null; } else { line.SyncStatus = SyncStatus.ApplyFailed; line.Error = response.ErrorMessage; // The Lms can send false success if the entity already exist. In such a case we read the targetId if (!string.IsNullOrEmpty(response.TargetId)) { line.TargetId = response.TargetId; } } line.Touch(); repo.PushLineHistory(line, isNewData: false); }
public async Task <HttpResponseMessage> NewPost([FromBody] ApiPost apiPost) { return(null); }
public object OnApiPost(ApiEventArgs e) { return(ApiPost?.Invoke(this, e)); }
public async Task <ApiResponse> Enrollment([FromBody] ApiPost <CsvEnrollment> enrollment) { return(await ProcessEntity <CsvEnrollment>(enrollment)); }
public async Task <ApiResponse> UserEntity([FromBody] ApiPost <CsvUser> user) { return(await ProcessEntity <CsvUser>(user)); }
public async Task <ApiResponse> Class([FromBody] ApiPost <CsvClass> _class) { return(await ProcessEntity <CsvClass>(_class)); }
public async Task <ApiResponse> AcademicSession([FromBody] ApiPost <CsvAcademicSession> academicSession) { return(await ProcessEntity <CsvAcademicSession>(academicSession)); }
public async Task <ApiResponse> Course([FromBody] ApiPost <CsvCourse> course) { return(await ProcessEntity <CsvCourse>(course)); }
public async Task <ApiResponse> Org([FromBody] ApiPost <CsvOrg> org) { return(await ProcessEntity <CsvOrg>(org)); }