コード例 #1
0
        public IActionResult edit([FromBody] Client client)
        {
            if (client.user.password != string.Empty)
            {
                client.user.password = Utils.GetMd5HashPassword(client.user.password);
            }

            using (var db = new FindThemContext())
            {
                try
                {
                    var user = db.Users.FirstOrDefault(x => x.id == client.user.id);

                    user.email = client.user.email;
                    user.name  = client.user.name;
                    user.photo = client.user.photo;

                    db.Users.Update(user);
                    db.SaveChanges();

                    client.user = user;

                    db.Clients.Update(client);
                    db.SaveChanges();
                }
                catch (Exception ex)
                {
                    return(Ok(new { success = false, message = ex.Message }));
                }
            }

            return(Ok(new { success = true, message = "Register edited with success", data = client }));
        }
コード例 #2
0
        public IActionResult Create([FromBody] Service service)
        {
            using (var db = new FindThemContext())
            {
                try
                {
                    var provider = db.Providers.Include(x => x.user).FirstOrDefault(x => x.id == service.provider.id);

                    if (provider == null)
                    {
                        throw new Exception("Provider not found.");
                    }

                    service.provider = provider;

                    db.Services.Add(service);
                    db.SaveChanges();
                }
                catch (Exception ex)
                {
                    return(Ok(new { success = false, message = ex.Message }));
                }
            }

            return(Ok(new { success = true, message = "Register created with success", data = service }));
        }
コード例 #3
0
        public IActionResult get(Int64 requestID)
        {
            var request = new Request();

            using (var db = new FindThemContext())
            {
                try
                {
                    request = db.Requests
                              .Where(x => x.id == requestID)
                              .Include(x => x.client)
                              .ThenInclude(x => x.user)
                              .Include(x => x.provider)
                              .ThenInclude(x => x.user)
                              .Include(x => x.service)
                              .FirstOrDefault();
                }
                catch (Exception ex)
                {
                    return(BadRequest(ex.Message));
                }
            }

            return(Ok(request));
        }
コード例 #4
0
        public IActionResult getWithoutId()
        {
            var client = new Client();

            long id = 0;

            var identity = HttpContext.User.Identity as ClaimsIdentity;

            if (identity != null)
            {
                id = Convert.ToInt64(identity.FindFirst("userId").Value);
            }

            using (var db = new FindThemContext())
            {
                client = db.Clients
                         .Where(x => x.enabled == true)
                         .Include(user => user.user)
                         .FirstOrDefault(x => x.id == id);

                client.user.password = "";
            }

            return(Ok(client));
        }
コード例 #5
0
        public IActionResult Create([FromBody] Provider provider)
        {
            using (var db = new FindThemContext())
            {
                try
                {
                    var user = db.Users.FirstOrDefault(x => x.email == provider.user.email);

                    provider.user.password = Utils.GetMd5HashPassword(provider.user.password);

                    if (provider.user.name == string.Empty)
                    {
                        provider.user.name = provider.name;
                    }

                    if (user == null)
                    {
                        provider.user = db.Users.Add(provider.user).Entity;
                        db.SaveChanges();
                    }
                    else
                    {
                        user.email    = provider.user.email;
                        user.name     = provider.user.name;
                        user.password = provider.user.password;
                        user.photo    = provider.user.photo;

                        db.Users.Update(user);
                        db.SaveChanges();

                        provider.user = user;
                    }

                    var utils = new Utils();

                    var addressComplete = string.Format("{0} {1} {2} {3} {4}", provider.address, provider.number, provider.neighborhood, provider.city, provider.state);

                    var geometry = utils.getLatitudeLongitude(_config["API_KEY_GOOGLE_MAPS"], addressComplete);

                    if (geometry != null)
                    {
                        provider.latitude  = geometry.location.lat;
                        provider.longitude = geometry.location.lng;
                    }

                    db.Providers.Add(provider);
                    db.SaveChanges();
                }
                catch (Exception ex)
                {
                    return(Ok(new { success = false, message = ex.Message }));
                }
            }

            return(Ok(new { success = true, message = "Register created with success", data = provider }));
        }
コード例 #6
0
        public ActionResult set(Int64 requestID, [FromBody] Message message)
        {
            using (var db = new FindThemContext())
            {
                message = db.Messages
                          .Add(message).Entity;
                db.SaveChanges();
            }

            return(Ok(message));
        }
コード例 #7
0
        public ActionResult get(Int64 requestID)
        {
            var messages = new List <Message>();

            using (var db = new FindThemContext())
            {
                messages = db.Messages
                           .Where(x => x.request.id == requestID)
                           .ToList();
            }

            return(Ok(messages));
        }
コード例 #8
0
        public IActionResult Get(Int64 id)
        {
            var service = new Service();

            using (var db = new FindThemContext())
            {
                service = db.Services
                          .Where(x => x.enabled == true)
                          .Include(x => x.provider)
                          .FirstOrDefault(x => x.id == id);
            }

            return(Ok(service));
        }
コード例 #9
0
        public IActionResult FindProviderServices(long providerID)
        {
            var services = new List <Service>();

            using (var db = new FindThemContext())
            {
                services = db.Services
                           .Where(x => x.enabled == true && x.provider.id == providerID)
                           .Include(x => x.provider)
                           .ToList();
            }

            return(Ok(services));
        }
コード例 #10
0
        public IActionResult Get(Int64 id)
        {
            var provider = new Provider();

            using (var db = new FindThemContext())
            {
                provider = db.Providers
                           .Where(x => x.enabled == true)
                           .Include(user => user.user)
                           .FirstOrDefault(x => x.id == id);

                provider.user.password = "";
            }

            return(Ok(provider));
        }
コード例 #11
0
        public IActionResult Set([FromBody] Rate rate)
        {
            using (var db = new FindThemContext())
            {
                try
                {
                    db.Rates.Add(rate);
                    db.SaveChanges();
                } catch (Exception ex)
                {
                    return(Ok(new { success = false, message = ex.Message }));
                }
            }

            return(Ok(new { success = true, message = "Register created with success", data = rate }));
        }
コード例 #12
0
        public IActionResult Pay([FromBody] Payment payment)
        {
            using (var db = new FindThemContext())
            {
                try
                {
                    payment = db.Payments.Add(payment).Entity;
                    db.SaveChanges();
                }
                catch (Exception ex)
                {
                    return(BadRequest(ex.Message));
                }
            }

            return(Ok(payment));
        }
コード例 #13
0
        public ActionResult signIn([FromForm] string login, [FromForm] string password)
        {
            var user = new User();

            using (var db = new FindThemContext())
            {
                user = db.Users
                       .Where(x => x.email == login && x.password == Utils.GetMd5HashPassword(password))
                       .FirstOrDefault();
            }

            if (user == null)
            {
                return(Ok(new { message = "User not found." }));
            }

            var claims = new[]
            {
                new Claim("userId", user.id.ToString()), // Aqui é adicionado o id do usuário
                new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString())
            };

            var key        = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_config["Authentication:SecretKey"]));
            var credential = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);

            var token = new JwtSecurityToken
                        (
                claims: claims,
                signingCredentials: credential,
                expires: DateTime.Now.AddDays(7),
                issuer: _config["Authentication:Issuer"],
                audience: _config["Authentication:Audience"]
                        );

            var jwtToken = new
            {
                token      = new JwtSecurityTokenHandler().WriteToken(token),
                expiration = token.ValidTo,
                kind       = user.kind
            };

            return(Ok(jwtToken));
        }
コード例 #14
0
        public IActionResult Get(long id)
        {
            var rate = new Rate();

            using (var db = new FindThemContext())
            {
                try
                {
                    rate = db.Rates
                           .Where(x => x.enabled == true && x.id == id)
                           .FirstOrDefault(x => x.id == id);
                } catch (Exception ex)
                {
                    return(BadRequest(ex.Message));
                }
            }

            return(Ok(rate));
        }
コード例 #15
0
        public IActionResult findAll(int page = 1)
        {
            if (page > 0)
            {
                page--;
            }

            long id = 0;

            var identity = HttpContext.User.Identity as ClaimsIdentity;

            if (identity != null)
            {
                id = Convert.ToInt64(identity.FindFirst("userId").Value);
            }

            var kindUser = FindThem.Models.User.getKindUser(id);

            var clients = new List <Client>();

            using (var db = new FindThemContext())
            {
                if (kindUser == "admin")
                {
                    clients = db.Clients
                              .Where(x => x.enabled == true)
                              .Include(user => user.user)
                              .Skip(20 * page).Take(20)
                              .ToList();
                }
                else
                {
                    clients = db.Clients
                              .Where(x => x.enabled == true && x.user.id == id)
                              .Include(user => user.user)
                              .Skip(20 * page).Take(20)
                              .ToList();
                }
            }

            return(Ok(clients));
        }
コード例 #16
0
        public IActionResult Get(Int64 id)
        {
            var payment = new Payment();

            using (var db = new FindThemContext())
            {
                try
                {
                    payment = db.Payments
                              .Where(x => x.enabled == true && x.id == id)
                              .FirstOrDefault(x => x.id == id);
                }
                catch (Exception ex)
                {
                    return(BadRequest(ex.Message));
                }
            }

            return(Ok(payment));
        }
コード例 #17
0
        public IActionResult Create([FromBody] Request request)
        {
            using (var db = new FindThemContext())
            {
                try
                {
                    var client = db.Clients
                                 .Where(x => x.id == request.client.id)
                                 .Include(x => x.user)
                                 .FirstOrDefault();

                    var provider = db.Providers
                                   .Where(x => x.id == request.provider.id)
                                   .Include(x => x.user)
                                   .FirstOrDefault();

                    var service = db.Services
                                  .Where(x => x.id == request.service.id)
                                  .Include(x => x.provider)
                                  .ThenInclude(x => x.user)
                                  .FirstOrDefault();

                    request.client   = client;
                    request.provider = provider;
                    request.service  = service;

                    db.Requests.Add(request);

                    db.Entry(request.client).State   = EntityState.Unchanged;
                    db.Entry(request.provider).State = EntityState.Unchanged;
                    db.Entry(request.service).State  = EntityState.Unchanged;

                    db.SaveChanges();
                } catch (Exception ex)
                {
                    return(Ok(new { success = false, message = ex.InnerException.Message }));
                }
            }

            return(Ok(new { success = true, message = "Request created with success", data = request }));
        }
コード例 #18
0
        public IActionResult create([FromBody] Client client)
        {
            using (var db = new FindThemContext())
            {
                try
                {
                    var user = db.Users.FirstOrDefault(x => x.email == client.user.email);

                    client.user.password = Utils.GetMd5HashPassword(client.user.password);

                    if (user == null)
                    {
                        db.Users.Add(client.user);
                        db.SaveChanges();
                        client.user = db.Users.Add(client.user).Entity;
                    }
                    else
                    {
                        user.email    = client.user.email;
                        user.name     = client.user.name;
                        user.password = client.user.password;
                        user.photo    = client.user.photo;

                        db.Users.Update(user);
                        db.SaveChanges();

                        client.user = user;
                    }

                    db.Clients.Add(client);
                    db.SaveChanges();
                }
                catch (Exception ex)
                {
                    return(Ok(new { success = false, message = ex.InnerException.Message }));
                }
            }

            return(Ok(new { success = true, message = "Register created with success", data = client }));
        }
コード例 #19
0
        public IActionResult delete(Int64 id)
        {
            using (var db = new FindThemContext())
            {
                try
                {
                    var client = db.Clients
                                 .FirstOrDefault(x => x.id == id);

                    client.dateUpdated = DateTime.Now;
                    client.enabled     = false;

                    db.Clients.Update(client);
                    db.SaveChanges();
                }
                catch (Exception ex)
                {
                    return(Ok(new { success = false, message = ex.Message }));
                }
            }

            return(Ok(new { success = true, message = "Register deleted with success" }));
        }
コード例 #20
0
        public IActionResult FindAll()
        {
            var requests = new List <Request>();

            long id = 0;

            var identity = HttpContext.User.Identity as ClaimsIdentity;

            if (identity != null)
            {
                id = Convert.ToInt64(identity.FindFirst("userId").Value);
            }

            var kindUser = FindThem.Models.User.getKindUser(id);

            using (var db = new FindThemContext())
            {
                try
                {
                    requests = db.Requests
                               .Where(x => x.enabled == true && x.client.user.id == id)
                               .Include(x => x.client)
                               .ThenInclude(x => x.user)
                               .Include(x => x.provider)
                               .ThenInclude(x => x.user)
                               .Include(x => x.service)
                               .ToList();
                }
                catch (Exception ex)
                {
                    return(BadRequest(ex.Message));
                }
            }

            return(Ok(requests));
        }
コード例 #21
0
        public IActionResult FindAll()
        {
            var services = new List <Service>();

            long id = 0;

            var identity = HttpContext.User.Identity as ClaimsIdentity;

            if (identity != null)
            {
                id = Convert.ToInt64(identity.FindFirst("userId").Value);
            }

            var kindUser = FindThem.Models.User.getKindUser(id);


            using (var db = new FindThemContext())
            {
                if (kindUser == "admin")
                {
                    services = db.Services
                               .Where(x => x.enabled == true)
                               .Include(x => x.provider)
                               .ToList();
                }
                else
                {
                    services = db.Services
                               .Where(x => x.enabled == true && x.provider.user.id == id)
                               .Include(x => x.provider)
                               .ToList();
                }
            }

            return(Ok(services));
        }