public async Task <IDeletableEntityRepository <Material> > EditAsync(MaterialEditViewModel input, ApplicationUser user) { await this.DelateMaterialFiles(input.Id); var material = this.GetById(input.Id); material.Title = input.Title; material.Description = input.SanitizedDescription; var uploadResult = await this.Cloudinary.UploadMultipleAsync(input.Files); foreach (var fileUrl in uploadResult) { var file = new MaterialFiles { MaterialId = material.Id, Material = material, UserId = user.Id, FileUrl = fileUrl, }; material.FilesUrls.Add(file); await this.MaterialFilesRepository.AddAsync(file); } this.MaterialsRepository.Update(material); await this.MaterialsRepository.SaveChangesAsync(); await this.MaterialFilesRepository.SaveChangesAsync(); user.Materials.Add(material); return(this.MaterialsRepository); }
public async Task <IDeletableEntityRepository <Material> > UploadAsync(MaterialUploadViewModel input, ApplicationUser user) { var material = AutoMapperConfig.MapperInstance.Map <Material>(input); await this.MaterialsRepository.AddAsync(material); material.AuthorId = user.Id; var uploadResult = await this.Cloudinary.UploadMultipleAsync(input.Files); foreach (var fileUrl in uploadResult) { var file = new MaterialFiles { MaterialId = material.Id, Material = material, UserId = user.Id, FileUrl = fileUrl, }; material.FilesUrls.Add(file); await this.MaterialFilesRepository.AddAsync(file); } await this.MaterialsRepository.SaveChangesAsync(); await this.MaterialFilesRepository.SaveChangesAsync(); user.Materials.Add(material); return(this.MaterialsRepository); }
protected override void Parse(string keyword, string data) { switch (keyword.ToLower()) { case "v": Vertices.Add(ParseVertex(data)); break; case "vp": throw new NotImplementedException(); break; case "vn": Normals.Add(ParseNormal(data)); break; case "vt": TextureVertices.Add(ParseTextureVertex(data)); break; case "g": break; case "f": Faces.Add(ParseFace(data)); break; case "usemtl": Materials.Add(_currentMaterial = LoadedMaterials.First(m => m.Name == data)); break; case "mtllib": using (var stream = FileSource.Get(data)) { MaterialFiles.Add(new MATFile(stream, FileSource)); } break; default: throw new Exception(keyword); break; // } }
public async Task SeedAsync(ApplicationDbContext dbContext, IServiceProvider serviceProvider) { var random = new Random(); var materials = new[] { "https://res.cloudinary.com/dv3tfjvk0/image/upload/v1587642825/d3iccpxwcr2hfx4ttane.pdf", "https://res.cloudinary.com/dv3tfjvk0/image/upload/v1587642824/dsqdz6ptypzl0wkkdsih.pdf", "https://res.cloudinary.com/dv3tfjvk0/image/upload/v1587642823/xrjbzo5lcnmj4u8jyret.pdf", "https://res.cloudinary.com/dv3tfjvk0/image/upload/v1587635757/rehzkxgurxbnf1eqwpas.pdf", "https://res.cloudinary.com/dv3tfjvk0/image/upload/v1587626688/wfcfg2scoqjtkxf9acil.pdf", "https://res.cloudinary.com/dv3tfjvk0/image/upload/v1587625891/xhdvk1gkhcsaxmzzarhq.pdf", "https://res.cloudinary.com/dv3tfjvk0/image/upload/v1587599870/xtyt8g2i4lbyhpevfkkt.pdf", "https://res.cloudinary.com/dv3tfjvk0/image/upload/v1587598184/ch6xyrddkfgcgyvrlvbb.pdf", "https://res.cloudinary.com/dv3tfjvk0/image/upload/v1587598066/dbyewp7gk3reqr8ncegm.pdf", "https://res.cloudinary.com/dv3tfjvk0/image/upload/v1587598063/bso0kjtqm6wybwea2ucs.pdf", "https://res.cloudinary.com/dv3tfjvk0/image/upload/v1584389192/dechev.pdf", "https://res.cloudinary.com/dv3tfjvk0/image/upload/v1587625868/q4ebqh1q9ivvhm3vdwbf.pdf", }; var materialsFiles = new List <MaterialFiles>(); if (dbContext.MaterialsFiles.Any()) { return; } for (int i = 0; i < 150; i++) { var materialFile = new MaterialFiles { FileUrl = materials[random.Next(0, materials.Count())], MaterialId = dbContext.Materials.Skip(random.Next(0, dbContext.Materials.Count() - 1)) .FirstOrDefault().Id, UserId = dbContext.ApplicationUsers.Skip(random.Next(0, dbContext.ApplicationUsers.Count() - 1)) .FirstOrDefault().Id, }; materialsFiles.Add(materialFile); } dbContext.MaterialsFiles.AddRange(materialsFiles); }
async void CheckMaterialFiles() { var client = new RestClient(HOST_URL); //var client = new RestClient("http://sbl-crm-project-pafik13.c9users.io:8080/"); var request = new RestRequest("/MaterialFile?type=for_hospital&populate=false&limit=50", Method.GET); var response = await client.ExecuteGetTaskAsync <List <MaterialFile> >(request); if (!CancelToken.IsCancellationRequested) { switch (response.StatusCode) { case HttpStatusCode.OK: case HttpStatusCode.Created: SDiag.Debug.WriteLine("MaterialFile: {0}", response.Data.Count); MaterialFiles.Clear(); foreach (var item in response.Data) { if (!MainDatabase.IsSavedBefore <MaterialFile>(item.uuid)) { if (!string.IsNullOrEmpty(item.s3Location)) { MaterialFiles.Add(item); } } } RunOnUiThread(() => { int count = MaterialFiles.Count + WorkTypes.Count + LibraryFiles.Count; FindViewById <TextView>(Resource.Id.saUpdateEntitiesCount).Text = string.Format("Необходимо обновить {0} объектов", count); }); break; } SDiag.Debug.WriteLine(response.StatusDescription); } request = new RestRequest("/WorkType?populate=false", Method.GET); var responseWTs = await client.ExecuteGetTaskAsync <List <WorkType> >(request); if (!CancelToken.IsCancellationRequested) { switch (responseWTs.StatusCode) { case HttpStatusCode.OK: case HttpStatusCode.Created: SDiag.Debug.WriteLine("WorkType: {0}", responseWTs.Data.Count); WorkTypes.Clear(); foreach (var item in responseWTs.Data) { if (!MainDatabase.IsSavedBefore <WorkType>(item.uuid)) { if (!string.IsNullOrEmpty(item.name)) { WorkTypes.Add(item); } } } RunOnUiThread(() => { int count = MaterialFiles.Count + WorkTypes.Count + LibraryFiles.Count; FindViewById <TextView>(Resource.Id.saUpdateEntitiesCount).Text = string.Format("Необходимо обновить {0} объектов", count); }); break; } SDiag.Debug.WriteLine(response.StatusDescription); } }