public IActionResult Update(int id, [FromBody] KnownDesignation designation)
        {
            if (_designationProvider.Get(id) == null)
            {
                return(Json(BadRequest(new ErrorResponse("Designation id doesn't exist"))));
            }
            if (designation == null)
            {
                return(Json(BadRequest(new ErrorResponse("Invalid Request Format."))));
            }
            if (designation.Name == null || designation.Name == "")
            {
                return(Json(BadRequest(new ErrorResponse("Designation name is required."))));
            }
            if (_designationProvider.Exists(designation.Name))
            {
                return(Json(BadRequest(new ErrorResponse(String.Format("Designation named {0} already exists.", designation.Name)))));
            }
            bool updateSuccessful = _designationProvider.Update(id, designation);

            if (updateSuccessful)
            {
                KnownDesignation knownDesignation = _designationProvider.Get(id);
                if (knownDesignation != null)
                {
                    return(Json(new DesignationResponse(knownDesignation)));
                }
            }
            return(Json(BadRequest(new ErrorResponse("Designation update failed"))));
        }
 public IActionResult Create([FromBody] KnownDesignation designation)
 {
     if (designation == null)
     {
         return(Json(BadRequest(new ErrorResponse("Invalid Request Format."))));
     }
     if (designation.Name == null || designation.Name == "")
     {
         return(Json(BadRequest(new ErrorResponse("Designation name is required."))));
     }
     return(Json(new DesignationIdResponse(_designationProvider.Create(designation))));
 }
 /// <summary>
 /// Update an existing designation
 /// </summary>
 /// <param name="designationId">The id of existing designation</param>
 /// <param name="designation">The new designation to update to</param>
 /// <returns>Success status</returns>
 public bool Update(int designationId, KnownDesignation designation)
 {
     using (var dbContext = new AllocationContext(_dbContextOptions))
     {
         Model.Designation dbDesignation = dbContext.Designations.Find(designationId);
         if (dbDesignation == null)
         {
             return(false);
         }
         dbDesignation.Name = designation.Name;
         dbContext.SaveChanges();
         return(true);
     }
 }
 /// <summary>
 /// Create a new designation
 /// </summary>
 /// <param name="newDesignation">New designation to store in the database</param>
 /// <returns>The database identifier key of newly created designation</returns>
 public int Create(KnownDesignation newDesignation)
 {
     using (var dbContext = new AllocationContext(_dbContextOptions))
     {
         Model.Designation designation = dbContext.Designations.SingleOrDefault(
             d => String.Equals(d.Name, newDesignation.Name, StringComparison.OrdinalIgnoreCase)
             );
         if (designation == null) // No existing designation was found
         {
             designation = new Model.Designation()
             {
                 Name = newDesignation.Name
             };
             dbContext.Designations.Add(designation);
             dbContext.SaveChanges();
         }
         return(designation.DesignationId);
     }
 }
 /// <summary>
 /// Constructs a Message with the supplied designation
 /// </summary>
 /// <param name="designation">The supplied designation</param>
 public DesignationResponse(KnownDesignation designation) : base(ResponseStatus.Success)
 {
     Designation = designation;
 }