//Max 2GO public async Task <ActionResult> Convert(ConversionForm form) { if (ModelState.IsValid && isConversionFormValid(form)) { if (!User.Identity.IsAuthenticated) { Session.Remove("conversionForm"); Session.Add("conversionForm", form); return RedirectToAction("Login", "Account", new { returnUrl = "/Conversion/Convert" }); } try { string fileName = Path.GetFileName(form.Url); long fileTime = DateTime.Now.ToFileTime(); decimal price = 0; long fileLength = 0; if (form.Url != null) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(form.Url); HttpWebResponse response = (HttpWebResponse)await request.GetResponseAsync(); fileLength = response.ContentLength / 1024; } else { fileLength = form.File.ContentLength / 1024; } if((fileLength + SystemHelper.GetStorageUsed(User.Identity.GetUserId())) <= MAXIMUM_MEMORY_ATTRIBUTED) { Session.Add("conversionForm", form); return proceedToPayment(fileName, getPrice(fileLength), 1, fileTime.ToString()); } else { Session.Remove("conversionForm"); ModelState.AddModelError("", "Stockage insuffisant"); } } catch (Exception) { } ViewBag.audioFormats = await conversionApi.GetAudioFormatsSupported(); ViewBag.videoFormats = await conversionApi.GetVideoFormatsSupported(); return View(form); } TempData.Add("modelState", ModelState); return RedirectToAction("index", "home"); }
private bool isConversionFormValid(ConversionForm form) { if((form.File == null && form.Url == null) || (form.File != null && form.Url != null)) { ModelState.AddModelError("urlFileRequirement", "Veuillez séléctionner soit un Url ou un fichier"); return false; } return true; }