public static int?Create(HuntingEntities dataContext, CreateMapItemModel model, int userId)
        {
            try
            {
                MapItem updateItem = new MapItem()
                {
                    SysCreated  = DateTime.Now,
                    SysCreator  = userId,
                    TerritoryId = model.TerritoryId,
                    MapItemType = model.MapItemTypeId,
                };
                dataContext.MapItems.Add(updateItem);

                updateItem.Name        = model.Name;
                updateItem.Description = model.Description;
                updateItem.LocationX   = model.LocationX;
                updateItem.LocationY   = model.LocationY;
                updateItem.SysEditor   = userId;
                updateItem.SysUpdated  = DateTime.Now;

                dataContext.SaveChanges();
                return(updateItem.Id);
            }
            catch (Exception exception)
            {
                logger.Error(exception, "Create");
                return(null);
            }
        }
 public IHttpActionResult CreateMapItem(CreateMapItemModel model)
 {
     try
     {
         using (var dataContext = new HuntingEntities())
         {
             var session = GetSession();
             if (session == null)
             {
                 return(Content(HttpStatusCode.Unauthorized, SESSION_INVALID_MESSAGE));
             }
             var userSession = AclUserContext.GetUserSession(dataContext, session);
             if (userSession == null)
             {
                 return(Content(HttpStatusCode.Unauthorized, SESSION_INVALID_MESSAGE));
             }
             var territory = TerritoryContext.GetDetail(dataContext, model.TerritoryId);
             if (userSession.AclUser.CanUpdateTerritory(territory) == false)
             {
                 return(Content(HttpStatusCode.Forbidden, FORBIDDEN_MESSAGE));
             }
             var mapItemType = MapItemTypeContext.GetDetail(dataContext, model.MapItemTypeId);
             if (mapItemType == null || mapItemType.TerritoryId != territory.Id)
             {
                 return(Content(HttpStatusCode.BadRequest, BAD_REQUEST_MESSAGE));
             }
             if (model.IsValid() == false)
             {
                 return(Content(HttpStatusCode.BadRequest, BAD_REQUEST_MESSAGE));
             }
             var pointId = MapItemContext.Create(dataContext, model, userSession.AclUserId);
             if (pointId == null)
             {
                 return(Content(HttpStatusCode.InternalServerError, FAILED_MESSAGE));
             }
             return(Ok(pointId.Value.ToString()));
         }
     }
     catch (Exception exception)
     {
         logger.Error(exception, "MobileController");
         return(InternalServerError());
     }
 }