예제 #1
0
		public IQueryable<preg_help> GetItemsByParams(preg_help data)
		{
			IQueryable<preg_help> result = connect.preg_help;
			for (int i = 0; i < data.GetType().GetProperties().ToList().Count(); i++)
			{
				string propertyName = data.GetType().GetProperties().ToList()[i].Name;
				var propertyValue = data.GetType().GetProperty(propertyName).GetValue(data, null);
				if (propertyName == "id" && (int)(propertyValue) != 0)
				{
					result = result.Where(c => c.id == (int)(propertyValue));
				}
				else if (propertyName == "help_category_id" && propertyValue != null)
				{
					result = result.Where(c => c.help_category_id == (int)(propertyValue));
				}
				else if (propertyName == "image" && propertyValue != null)
				{
					result = result.Where(c => SqlFunctions.PatIndex("%" + propertyValue.ToString() + "%", c.image) > 0);
				}
				else if (propertyName == "description" && propertyValue != null)
				{
					result = result.Where(c => SqlFunctions.PatIndex("%" + propertyValue.ToString() + "%", c.description) > 0);
				}
			}
			return result;
		}
예제 #2
0
 public HttpResponseMessage Get([FromUri] preg_help data)
 {
     try
     {
         IEnumerable <preg_help> result;
         if (!data.DeepEquals(new preg_help()))
         {
             result = dao.GetItemsByParams(data);
         }
         else
         {
             result = dao.GetListItem();
         }
         if (result.Count() > 0)
         {
             return(Request.CreateResponse(HttpStatusCode.OK, result));
         }
         else
         {
             HttpError err = new HttpError(SysConst.DATA_NOT_FOUND);
             return(Request.CreateErrorResponse(HttpStatusCode.NotFound, err));
         }
     }
     catch (Exception ex)
     {
         HttpError err = new HttpError(ex.Message);
         return(Request.CreateErrorResponse(HttpStatusCode.NotFound, err));
     }
 }
예제 #3
0
 public HttpResponseMessage Delete(string id)
 {
     try
     {
         preg_help item = dao.GetItemByID(Convert.ToInt32(id)).FirstOrDefault();
         if (item == null)
         {
             return(Request.CreateErrorResponse(HttpStatusCode.NotFound, SysConst.DATA_NOT_FOUND));
         }
         dao.DeleteData(item);
         return(Request.CreateResponse(HttpStatusCode.Accepted, SysConst.DATA_DELETE_SUCCESS));
     }
     catch (Exception ex)
     {
         HttpError err = new HttpError(ex.Message);
         return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, err));
     }
 }
예제 #4
0
 public HttpResponseMessage Post([FromBody] preg_help data)
 {
     try
     {
         if (!data.DeepEquals(new preg_help()))
         {
             dao.InsertData(data);
             return(Request.CreateResponse(HttpStatusCode.Created, SysConst.DATA_INSERT_SUCCESS));
         }
         else
         {
             HttpError err = new HttpError(SysConst.DATA_NOT_EMPTY);
             return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, err));
         }
     }
     catch (Exception ex)
     {
         HttpError err = new HttpError(ex.Message);
         return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, err));
     }
 }
예제 #5
0
 public HttpResponseMessage Get(string id)
 {
     try
     {
         preg_help data = dao.GetItemByID(Convert.ToInt32(id)).FirstOrDefault();
         if (data != null)
         {
             return(Request.CreateResponse(HttpStatusCode.OK, data));
         }
         else
         {
             HttpError err = new HttpError(SysConst.DATA_NOT_FOUND);
             return(Request.CreateErrorResponse(HttpStatusCode.NotFound, err));
         }
     }
     catch (Exception ex)
     {
         HttpError err = new HttpError(ex.Message);
         return(Request.CreateErrorResponse(HttpStatusCode.NotFound, err));
     }
 }
예제 #6
0
        public HttpResponseMessage UpdateData(string id, preg_help dataUpdate)
        {
            try
            {
                if (!dataUpdate.DeepEquals(new preg_help()))
                {
                    preg_help help = new preg_help();
                    help = dao.GetItemByID(Convert.ToInt32(id)).FirstOrDefault();
                    if (help == null)
                    {
                        return(Request.CreateErrorResponse(HttpStatusCode.NotFound, SysConst.DATA_NOT_FOUND));
                    }
                    if (dataUpdate.help_category_id != null)
                    {
                        help.help_category_id = dataUpdate.help_category_id;
                    }
                    if (dataUpdate.image != null)
                    {
                        help.image = dataUpdate.image;
                    }
                    if (dataUpdate.description != null)
                    {
                        help.description = dataUpdate.description;
                    }

                    dao.UpdateData(help);
                    return(Request.CreateResponse(HttpStatusCode.Accepted, SysConst.DATA_UPDATE_SUCCESS));
                }
                else
                {
                    HttpError err = new HttpError(SysConst.DATA_NOT_EMPTY);
                    return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, err));
                }
            }
            catch (Exception ex)
            {
                HttpError err = new HttpError(ex.Message);
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, err));
            }
        }
예제 #7
0
        public async Task <HttpResponseMessage> Upload(string help_id)
        {
            // Check help_id exist
            preg_help checkItem = dao.GetItemByID(Convert.ToInt32(help_id)).FirstOrDefault();

            if (checkItem == null)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, String.Format(SysConst.ITEM_ID_NOT_EXIST, help_id)));
            }
            // Get current user_id
            int    user_id = Convert.ToInt32(((ClaimsIdentity)(User.Identity)).FindFirst("id").Value);
            string dir     = "/Files/Helps/" + help_id.ToString();
            string dirRoot = HttpContext.Current.Server.MapPath(dir);

            // Check if request contains multipart/form-data
            if (!Request.Content.IsMimeMultipartContent())
            {
                throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
            }
            // Check if directory folder created
            if (!Directory.Exists(dirRoot))
            {
                Directory.CreateDirectory(dirRoot);
            }
            // Check if image and html filetype
            for (int i = 0; i < HttpContext.Current.Request.Files.Count; i++)
            {
                HttpPostedFile file = HttpContext.Current.Request.Files[i];
                if (!SysConst.imgHtmlExtensions.Any(x => x.Equals(Path.GetExtension(file.FileName.ToLower()), StringComparison.OrdinalIgnoreCase)))
                {
                    return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, SysConst.INVALID_FILE_TYPE));
                }
                else if (File.Exists(dirRoot + "/" + file.FileName))
                {
                    File.Delete(dirRoot + "/" + file.FileName);
                }
            }

            CustomMultipartFormDataStreamProvider provider = new CustomMultipartFormDataStreamProvider(dirRoot);

            List <string> files = new List <string>();

            try
            {
                // Read all contents of multipart message into CustomMultipartFormDataStreamProvider.
                await Request.Content.ReadAsMultipartAsync(provider);

                // Update to database
                preg_help updateRow = new preg_help();
                foreach (MultipartFileData file in provider.FileData)
                {
                    string path = dir + "/" + HttpUtility.UrlPathEncode(Path.GetFileName(file.LocalFileName));
                    files.Add(path);
                    if (Path.GetExtension(file.LocalFileName).ToLower().Equals(".html"))
                    {
                        updateRow.description = path;
                    }
                    else
                    {
                        updateRow.image = path;
                    }
                }
                UpdateData(help_id, updateRow);

                return(Request.CreateResponse(HttpStatusCode.Created, files));
            }
            catch (System.Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex));
            }
        }
예제 #8
0
 public HttpResponseMessage Put(string id, [FromBody] preg_help dataUpdate)
 {
     return(UpdateData(id, dataUpdate));
 }
예제 #9
0
		public void DeleteData(preg_help item)
		{
			connect.preg_help.Remove(item);
			connect.SaveChanges();
		}
예제 #10
0
		public void UpdateData(preg_help item)
		{
			connect.SaveChanges();
		}
예제 #11
0
		public void InsertData(preg_help item)
		{
			connect.preg_help.Add(item);
			connect.SaveChanges();
		}