コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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;
                //
            }
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
            }
        }