public Task <ActionResult> Create([Bind(Include = "SoftwareId,Name,Changelog")] Release release, string blobUrl) { if (ModelState.IsValid) { if (blobUrl != null && blobUrl.Length > 0) { bool error = false; // Check Software Version var m = RegexHelper.SoftwareName.Match(release.Name); if (!m.Success) { ViewBag.NameError = "Your prefix and suffix aren't valid values. The prefix is not optional."; error = true; } // If the uploaded file is not a tarfile, return with error if (!RegexHelper.FwBlobUrl.IsMatch(blobUrl)) { ViewBag.FileError = "URL must link to tarfile in an Azure BLOB storage container named 'fwupdates' packed with update data and a script named 'apply.sh'"; error = true; } // If the software version already exists if (db.Releases.Any(s => s.Name.ToLower().Equals(release.Name.ToLower()))) { ViewBag.NameError = "This software version already exists."; error = true; } if (error) { return(Task.Factory.StartNew <ActionResult>( () => { var softwareVersions = db.SoftwareVersions.ToList(); return View("Create", new SoftwareViewCreate { Release = null, SoftwareVersions = softwareVersions }); })); } // Ok, form is valid // Read associated SoftwareVersion // Get the group var prefix = m.Groups[1].Value; var suffix = m.Groups[4].Value; var releaseNum = Int32.Parse(m.Groups[2].Value); var softwareVersion = db.SoftwareVersions.FirstOrDefault(sv => sv.Prefix.Equals(prefix) && sv.Suffix.Equals(suffix)); // If we don't find a SoftwareVersion in database, create a new one if (softwareVersion == null) { softwareVersion = new SoftwareVersion { Prefix = prefix, Suffix = suffix, // First release CurrentReleaseNum = 1 }; db.SoftwareVersions.Add(softwareVersion); } else { if (softwareVersion.CurrentReleaseNum + 1 != releaseNum) { ViewBag.NameError = "The release number is not correct."; return(Task.Factory.StartNew <ActionResult>( () => { var softwareVersions = db.SoftwareVersions.ToList(); return View("Create", new SoftwareViewCreate { Release = null, SoftwareVersions = softwareVersions }); })); } softwareVersion.CurrentReleaseNum = releaseNum; } // Add reference to SoftwareVersion to Release release.SoftwareVersionId = softwareVersion.SoftwareVersionId; release.Num = softwareVersion.CurrentReleaseNum; try { release.Status = "Uploaded"; release.Author = "SWT"; release.Date = DateTime.Now; // Add to database db.Releases.Add(release); db.SaveChanges(); var location = Server.MapPath("~/sw-updates/" + release.Name); PortalUtils.CreateNewFirmwareUpdateTask(blobUrl, location, release.SoftwareId); return(Task.Factory.StartNew <ActionResult>( () => { return RedirectToAction("Index"); })); //return RedirectToAction("Index"); } catch (Exception e) { release.Status = "Error during initialization"; db.SaveChanges(); } } } return(Task.Factory.StartNew <ActionResult>( () => { return View(release); })); }
private void BindUserSpace() { //cmdSave.Attributes.Add("AutoPostback", "true"); spanSpace.Visible = false; pnlViewSpace.Visible = false; pnlEditSpace.Visible = false; lnkCurrentPage.Text = PortalUtils.GetLocalizedPageName(PortalUtils.GetCurrentPageId()); if (PanelSecurity.PackageId > 0) { // space PackageInfo package = ES.Services.Packages.GetPackage(PanelSecurity.PackageId); if (package != null) { spanSpace.Visible = true; pnlViewSpace.Visible = true; lnkSpace.Text = PortalAntiXSS.EncodeOld(package.PackageName); lnkSpace.NavigateUrl = PortalUtils.GetSpaceHomePageUrl(package.PackageId); cmdSpaceName.Text = PortalAntiXSS.EncodeOld(package.PackageName); lblSpaceDescription.Text = PortalAntiXSS.EncodeOld(package.PackageComments); UserInfo user = UsersHelper.GetUser(PanelSecurity.SelectedUserId); if (user != null) { lblUserAccountName.Text = PortalAntiXSS.EncodeOld(string.Format("{0} -", user.Username)); } lnkCurrentPage.NavigateUrl = PortalUtils.NavigatePageURL( PortalUtils.GetCurrentPageId(), "SpaceID", PanelSecurity.PackageId.ToString()); } } else { // pnlViewUser.Visible = true; // user UserInfo user = UsersHelper.GetUser(PanelSecurity.SelectedUserId); if (user != null) { // lblUsername.Text = user.Username; lnkCurrentPage.NavigateUrl = PortalUtils.NavigatePageURL( PortalUtils.GetCurrentPageId(), "UserID", PanelSecurity.SelectedUserId.ToString()); } } // organization bool orgVisible = (PanelRequest.ItemID > 0 && Request[DefaultPage.PAGE_ID_PARAM].Equals(PID_SPACE_EXCHANGE_SERVER, StringComparison.InvariantCultureIgnoreCase)); spanOrgn.Visible = orgVisible; if (orgVisible) { // load organization details Organization org = ES.Services.Organizations.GetOrganization(PanelRequest.ItemID); lnkOrgn.NavigateUrl = PortalUtils.EditUrl( "ItemID", PanelRequest.ItemID.ToString(), ORGANIZATION_CONTROL_KEY, "SpaceID=" + PanelSecurity.PackageId.ToString()); lnkOrgn.Text = org.Name; string curCtrlKey = PanelRequest.Ctl.ToLower(); string ctrlKey = PortalUtils.GetGeneralESControlKey(Request[DefaultPage.CONTROL_ID_PARAM].ToLower(System.Globalization.CultureInfo.InvariantCulture)); if (curCtrlKey == "edit_user") { ctrlKey = PanelRequest.Context.ToLower() == "user" ? "users" : PanelRequest.Context.ToLower() == "journalingmailbox" ? "journaling_mailboxes" : "mailboxes"; } else if (curCtrlKey == "mailbox_memberof") { ctrlKey = PanelRequest.Context.ToLower() == "journalingmailbox" ? "journaling_mailboxes" : "mailboxes"; } ModuleDefinition definition = PortalConfiguration.ModuleDefinitions[EXCHANGE_SERVER_MODULE_DEFINTION_ID]; ModuleControl control = null; if (!String.IsNullOrEmpty(ctrlKey) && definition.Controls.ContainsKey(ctrlKey)) { control = definition.Controls[ctrlKey]; } if (control != null) { if (!String.IsNullOrEmpty(control.Src)) { lnkOrgCurPage.Text = PortalUtils.GetLocalizedString(DM_FOLDER_VIRTUAL_PATH + control.Src, PAGE_NANE_KEY); lnkOrgCurPage.NavigateUrl = PortalUtils.EditUrl( "ItemID", PanelRequest.ItemID.ToString(), ctrlKey, "SpaceID=" + PanelSecurity.PackageId.ToString()); } } } }
public string GetUserHomeUrl(int userId) { return(PortalUtils.GetUserHomePageUrl(userId)); }