public static BaseActionResult CreateProfession(Profession obj4create)
        {
            string msg;
            if (obj4create == null)
            {
                msg = string.Format(Intern4jobResources.MSG_CREATE_SUCCESS, Intern4jobResources.STR_PROFESSION) + string.Format(Intern4jobResources.STR_FAIL_RESAON, Intern4jobResources.MSG_OBJECT_IS_NULL);
                return new BaseActionResult(false, msg);
            }

            try
            {
                using (var context = new Intern4jobEntities())
                {
                    var repository = new ProfessionRepository(context);
                    string newId = Guid.NewGuid().ToString();
                    obj4create.Id = newId;
                    repository.Create(obj4create);
                    context.SaveChanges();
                    msg = string.Format(Intern4jobResources.MSG_CREATE_SUCCESS, obj4create.Name);
                    return new BaseActionResult(true, msg);
                }
            }
            catch (Exception e)
            {
                msg = string.Format(Intern4jobResources.MSG_CREATE_FAIL, obj4create.Name) + string.Format(Intern4jobResources.STR_FAIL_RESAON, ExceptionHelper.GetInnerExceptionInfo(e));
                return new BaseActionResult(false, msg);
            }
        }
 // PUT api/professions/5
 public Object Put(string id, Profession obj)
 {
     string msg;
     Profession objinDb = BusinessService.GetProfessionById(id);
     if (objinDb == null)
     {
         msg = string.Format(Intern4jobResources.MSG_OBJECT_NOT_FOUND_WITH_ID, id);
         return new { IsSuccess = false, Message = msg };
     }
     objinDb.Name = obj.Name;
     objinDb.Description = obj.Description;
     objinDb.Catalog = obj.Catalog;
     objinDb.Class = obj.Class;
     BaseActionResult result = BusinessService.UpdateProfession(objinDb);
     return new { IsSuccess = result.IsSuccess, Message = result.Message };
 }
        public static BaseActionResult DeleteProfession(Profession obj4delete)
        {
            using (var context = new Intern4jobEntities())
            {
                string msg;
                var repository = new ProfessionRepository(context);

                if (obj4delete == null)
                {
                    msg = string.Format(Intern4jobResources.MSG_DELETE_SUCCESS, Intern4jobResources.STR_PROFESSION) + string.Format(Intern4jobResources.STR_FAIL_RESAON, Intern4jobResources.MSG_OBJECT_IS_NULL);
                    return new BaseActionResult(false, msg);
                }
                repository.Delete(obj4delete);
                context.SaveChanges();
                msg = string.Format(Intern4jobResources.MSG_UPDATE_SUCCESS, obj4delete.Name);
                return new BaseActionResult(true, msg);
            }
        }
 private static dynamic _orderByKey(Profession obj, ProfessionQuery query)
 {
     if (string.IsNullOrEmpty(query.OrderByKey))
         return obj.Id;
     return obj.GetType().GetProperty(query.OrderByKey).GetValue(obj);
 }
        public static bool _isMatch(Profession obj, ProfessionQuery query)
        {
            if (!string.IsNullOrEmpty(query.IdEqual) && !string.Equals(obj.Id, query.IdEqual))
                return false;
            if (!string.IsNullOrEmpty(query.IdNotEqual) && string.Equals(obj.Id, query.IdNotEqual))
                return false;

            if (!string.IsNullOrEmpty(query.NameEqual) && !string.Equals(obj.Name, query.NameEqual))
                return false;
            if (!string.IsNullOrEmpty(query.NameNotEqual) && string.Equals(obj.Name, query.NameNotEqual))
                return false;
            if (!string.IsNullOrEmpty(query.NameLike) && !obj.Name.Contains(query.NameLike))
                return false;

            return true;
        }
 // POST api/professions
 public Object Post(Profession obj)
 {
     BaseActionResult result = BusinessService.CreateProfession(obj);
     return new { IsSuccess = result.IsSuccess, Message = result.Message };
 }