コード例 #1
0
        public async Task <IActionResult> Upload()
        {
            try
            {
                var file      = Request.Form.Files[0];
                var extension = Path.GetExtension(file.FileName);
                //nakon ove 2 linije dobije se putanja
                //D://.........Resources/Site



                if (file.Length > 0)
                {
                    var email = HttpContext.Request.Form["email"];
                    var type  = HttpContext.Request.Form["type"];
                    var name  = HttpContext.Request.Form["name"];

                    var user = _context.Users.ToList().FirstOrDefault(x => x.Email == email);


                    String fileName = "", folderName = "", pathToSave = "";

                    if (type == "profilePicture")
                    {
                        //ako je u pitanju user koji menja profilnu hasujemo njegovu sliku na osnovu njegovog emaila kako bismo dobili
                        //jedinstveni naziv slike na serveru da ne bi doslo do gazenja
                        fileName   = Hash(email) + extension;
                        folderName = Path.Combine("Resources", "Users");
                        pathToSave = Path.Combine(Directory.GetCurrentDirectory(), folderName);

                        user.Image = fileName;

                        _context.Users.Update(user);
                        await _context.SaveChangesAsync();
                    }
                    else
                    {
                        /*ako je admin u pitanju*/
                        fileName   = name + extension;  //admin zadaje ime, kakvo je ime usluge tako je i ime slike, tako se i potrazuje
                        folderName = Path.Combine("Resources", "Site");
                        pathToSave = Path.Combine(Directory.GetCurrentDirectory(), folderName);
                        //pozivam servis za dodavanje servisa
                        await _airlineService.CreateAvailableService(new AvailableService()
                        {
                            Icon = fileName, Name = name, Status = true
                        });
                    }

                    //smestam sliku na lokaciju
                    var fullPath = Path.Combine(pathToSave, fileName);
                    var dbPath   = Path.Combine(folderName, fileName);


                    using (var stream = new FileStream(fullPath, FileMode.Create))
                    {
                        file.CopyTo(stream);
                    }

                    return(Ok(new { dbPath }));
                }
                else
                {
                    return(BadRequest());
                }
            }catch (Exception e)
            {
                return(StatusCode(500, $"Internal server eror: {e}"));
            }
        }
コード例 #2
0
 public async Task <bool> CreateAvailableService(AvailableService availableService)
 {
     return(await _service.CreateAvailableService(availableService));
 }