public async Task <IHttpActionResult> PutMunition(string id)
        {
            Munition munition = await UpdateDataWithFile();

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != munition.MunitionID)
            {
                return(BadRequest());
            }

            if (munition.MunitionName == null || munition.MunitionName.Trim() == "")
            {
                return(BadRequest("Invalid Munition Name: " + munition.MunitionName));
            }

            if (!IsValidMunitionRole(munition.MunitionRole))
            {
                return(BadRequest("Invalid Munition Role: " + munition.MunitionRole));
            }

            if (!IsValidMOS(munition.MunitionMOS1))
            {
                return(BadRequest("Invalid MOS: " + munition.MunitionMOS1));
            }

            if (!IsValidMOS(munition.MunitionMOS2))
            {
                return(BadRequest("Invalid MOS: " + munition.MunitionMOS2));
            }

            if (!IsValidMOS(munition.MunitionMOS3))
            {
                return(BadRequest("Invalid MOS: " + munition.MunitionMOS3));
            }

            munition.RemoveUrl(munition.GetType().GetProperties().Where(p => properties.Contains(p.Name)).ToArray(), this.Request);
            munition.LastUpdate      = DateTime.Now;
            db.Entry(munition).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!MunitionExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }