Add and Delete
JobController.cs
[HttpPost, Route("job/create")]
[ValidateAntiForgeryToken]
public ActionResult Create(JobViewModel model, IEnumerable<HttpPostedFileBase> files)
{
if (ModelState.IsValid)
{
var client = this.GetLoggedInClient();
/*
* Get a timestamp as filename prefix,
* before uploading file, change the filename, the new file name (URL) save in database.
* maybe change later
*/
string fileNamePrefix = this._uploadService.GetFilePrefix();
string newPictureURL = UploadFile(files, fileNamePrefix); //upload file and get path
Job newJob = this._clientService.PostNewJob(client.ID, model.Title, model.Description, model.SuburbId, model.GenderId, model.ServiceId, model.ServicedAt, newPictureURL);
return RedirectToAction("Details/" + newJob.ID.ToString());
}
return View(model);
}
JobController.cs
//upload file and return path
private string UploadFile(IEnumerable<HttpPostedFileBase> files, string fileNamePrefix)
{
string ownString = "job"; //used for check picture name has change
string path = ConfigurationManager.AppSettings["uploadPath_Job"];
var uploadPath = Server.MapPath(path);
var newPathWithFileName = "";
if (files.FirstOrDefault() != null)
{
this._uploadService.UploadFile(files, ownString + fileNamePrefix, uploadPath);
if (fileNamePrefix != null)
newPathWithFileName = path + "/" + ownString + fileNamePrefix + files.First().FileName;
}
return newPathWithFileName;
}
UploadService.cs
//generate timestamp string
public string GetFilePrefix()
{
string filePrefix = "";
long lastTimeStamp = DateTime.UtcNow.Ticks;
filePrefix = lastTimeStamp.ToString();
return filePrefix;
}
public void UploadFile(IEnumerable<HttpPostedFileBase> files, string fileNamePrefix, string uploadPath)
{
foreach (var file in files)
{
if (file != null && file.ContentLength > 0)
{
var fileName = fileNamePrefix + file.FileName;
var path = Path.Combine(uploadPath, fileName);
Directory.CreateDirectory(uploadPath);
file.SaveAs(path);
}
}
// Response.Write("The file has been uploaded.");
}
public bool DeleteFileFromServer(string filePath)
{
var fullPath = HostingEnvironment.MapPath(filePath);
if (!System.IO.File.Exists(fullPath))
return false;
try
{
System.IO.File.Delete(fullPath);
return true;
}
catch (Exception e)
{
throw e;
}
}
ClientService.cs
public Job PostNewJob(int ownerClientId, string title, string description, int suburbId, int genderId, int serviceId, DateTime? serviceAt, string pictureURL)
{
if (ownerClientId < 1)
throw new ArgumentException("ownerClientId must be an ID greater than 1.");
var client = this._entities.Single<Client>(c => c.ID == ownerClientId);
if (client == null)
throw new ArgumentNullException("client");
var now = DateTime.Now;
var clientId = client.ID;
var job = new Job(clientId)
{
CreatedAt = now,
UpdatedAt = now,
Title = title,
Description = description,
SuburbId = suburbId,
GenderId = genderId,
ServiceId = serviceId,
ServiceAt = serviceAt,
PictureURL = pictureURL,
JobStatus = "New"
};
client.PostedJobs.Add(job);
this._entities.Update(client);
this._entities.Save();
return job;
}
Last updated