[HttpPost] /*POSTMAN OK*/
        public IActionResult Create([FromBody] UserDetailed user)
        {
            switch (_userRepo.Create(user.ApiToDal()))
            {
            case (DBErrors.Success):
                user.Id = _userRepo.getIdWithNN(user.NationalNumber);
                if (!(user.Contacts is null))
                {
                    foreach (A.Contact C in user.Contacts)
                    {
                        switch (_contactRepo.LinkEntityWithUser(C.Id, user.Id))
                        {
                        case (DBErrors.Success):
                            break;

                        case (DBErrors.LinkAlreadyExist):
                            return(Problem("A link is already active between theses id's.", statusCode: (int)HttpStatusCode.BadRequest));

                        default:
                            break;
                        }
                    }
                }
                IEnumerable <Status> statusList = StatusCodeService.Deserialize(user.StatusCode);
                if (!(statusList is null))
                {
                    foreach (Status s in statusList)
                    {
                        switch (_statusRepo.LinkEntityWithUser(s.Id, user.Id))
                        {
                        case (DBErrors.Success):
                            break;

                        case (DBErrors.LinkAlreadyExist):
                            return(Problem("A link is already active between theses id's.", statusCode: (int)HttpStatusCode.BadRequest));

                        default:
                            break;
                        }
                    }
                }
                return(Ok());

            case (DBErrors.ClassId_NotFound):
                return(Problem("A valid ClassId is needed.", statusCode: (int)HttpStatusCode.BadRequest));

            case (DBErrors.NationalNumber_Exist):
                return(Problem("NationalNumber already exist.", statusCode: (int)HttpStatusCode.BadRequest));

            case (DBErrors.NullExeption):
                return(Problem("A mandatory field does not support 'null' value or is missing", statusCode: (int)HttpStatusCode.BadRequest));

            case (DBErrors.StartDate_Birthdate_Error):
                return(Problem("Birthdate should be lower than StartDate.", statusCode: (int)HttpStatusCode.BadRequest));

            default:
                return(Problem("?", statusCode: (int)HttpStatusCode.NotFound));
            }
        }
Beispiel #2
0
        public StatusCodeModel Post([FromBody] StatusCodeModel statuscode)
        {
            Response.StatusCode = 201;
            string result = StatusCodeService.CreateStatusCode(statuscode, dbConn);

            statuscode.Id = Convert.ToInt32(result);
            return(statuscode);
        }
Beispiel #3
0
        public void OnAuthorization(AuthorizationFilterContext context)
        {
            ITokenService _tokenService = (ITokenService)context.HttpContext.RequestServices.GetService(typeof(ITokenService));

            context.HttpContext.Request.Headers.TryGetValue("Authorization", out StringValues authorizations);

            string token = authorizations.SingleOrDefault(t => t.StartsWith("Bearer "));

            if (token is null)
            {
                context.Result = new StatusCodeResult((int)HttpStatusCode.Unauthorized);
            }
            else
            {
                IEnumerable <string> properties = new List <string>()
                {
                    "Id", "LastName", "FirstName", "Birthdate", "Login", "Gender", "StatusCode", "FirstLogin"
                };
                IDictionary <string, string> user = _tokenService.DecodeToken(token, properties);

                if (user is null)
                {
                    context.Result = new StatusCodeResult((int)HttpStatusCode.Unauthorized);
                }
                else
                {
                    string[]             requiredStatus = RequiredStatus.Replace(" ", "").Split("|");
                    IEnumerable <Status> status         = StatusCodeService.Deserialize(int.Parse(user["StatusCode"]));

                    int nbr = 0;

                    foreach (Status item in status)
                    {
                        if (nbr > 0)
                        {
                            break;
                        }
                        foreach (string RS in requiredStatus)
                        {
                            if (RS == item.Name)
                            {
                                nbr += 1;
                                break;
                            }
                        }
                    }
                    if (nbr == 0)
                    {
                        context.Result = new StatusCodeResult((int)HttpStatusCode.Unauthorized);
                    }
                    else
                    {
                        context.RouteData.Values.Add("UserId", user["Id"]);
                    }
                }
            }
        }
Beispiel #4
0
 public string UpdateStatusCode([FromRoute] int id, [FromBody] StatusCodeModel statuscode)
 {
     return(StatusCodeService.UpdateStatusCode(statuscode, dbConn));
 }
Beispiel #5
0
 public string DeleteStatusCode([FromRoute] int id)
 {
     return(StatusCodeService.DeleteStatusCode(id, dbConn));
 }
Beispiel #6
0
 public StatusCodeModel GetStatusCode([FromRoute] int id)
 {
     return(StatusCodeService.GetStatusCode(id, dbConn));
 }
Beispiel #7
0
 public List <StatusCodeModel> Get()
 {
     return(StatusCodeService.GetAllStatusCodes(dbConn));
 }