private UploadHomeWorkResult CheckForHWConditions(Project project, UploadHomeWork model) { if (project != null) { if (project.IsHomeWork) { HomeWork homeWork = project.HomeWork; if (homeWork.HasCondition) { Condition condition = homeWork.Condition; if (condition.IsBlocked) { return(new UploadHomeWorkResult(false, UploadHomeWorkStatus.AlreadyBloked, "This home work is already blocked")); } else { if (condition.HasRequiredDate) { DateTime date = DateTime.Now; if (date != condition.Until) { return(new UploadHomeWorkResult(false, UploadHomeWorkStatus.AlreadyBloked, "This home work is already blocked")); } } } if (condition.HasRequiredFormat) { if (condition.RequiredFormat == model.Format) { return(new UploadHomeWorkResult(true, UploadHomeWorkStatus.OK, "No errors")); } else { return(new UploadHomeWorkResult(false, UploadHomeWorkStatus.IncorrectFormat, "There is incorect file format")); } } else { return(new UploadHomeWorkResult(true, UploadHomeWorkStatus.OK, "No errors")); } } else { return(new UploadHomeWorkResult(true, UploadHomeWorkStatus.OK, "No errors")); } } else { return(new UploadHomeWorkResult(false, UploadHomeWorkStatus.IncorrectFormat, "There is incorect project Id")); } } else { return(new UploadHomeWorkResult(false, UploadHomeWorkStatus.Exception, "Exception")); } }
public async Task <ActionResult> UploadHomeWork(UploadHomeWork model) { Project project = await context.Projects.FindAsync(model.ProjectId); UploadHomeWorkResult projectValidation = CheckForHWConditions(project, model); if (projectValidation.Result) { string formatedString = FileData.FormatBase64(model.FileBase64Data); if (formatedString == "Exception") { projectValidation = new UploadHomeWorkResult(false, UploadHomeWorkStatus.Exception, "There is incorect file"); } else { FileData file = new FileData(); file.Guid = Guid.NewGuid(); file.Name = model.Name; file.Format = model.Format; byte[] formatedFile = Convert.FromBase64String(formatedString); file.Data = formatedFile; project.File = file; project.IsUploaded = true; context.Entry(project).State = EntityState.Modified; context.SaveChanges(); } } var json = new JavaScriptSerializer().Serialize(projectValidation); return(new ContentResult() { Content = json, ContentType = ApplicationConstants.JSON_TYPE, ContentEncoding = Encoding.UTF8 }); }