示例#1
0
        public async Task <IAppReleaseResult> DeleteAppRelease(AppRelease release)
        {
            var result = db.Remove(release);
            await db.SaveChangesAsync();

            return(result.Entity);
        }
示例#2
0
        //
        // GET: /AppRelease/Create

        public ActionResult Create()
        {
            AppRelease rel = new AppRelease();

            ViewData["Creating"] = true;
            return(View("Edit", rel));
        }
示例#3
0
        public async Task <IAppReleaseResult> CreateAppRelease(CreateAppReleaseInput appReleaseInput, [Service] ITopicEventSender eventSender)
        {
            // Validate input.
            var validationResult = await createAppReleaseInputValidator.ValidateAsync(appReleaseInput);

            if (!validationResult.IsValid)
            {
                return(new Error(validationResult.Errors.FirstOrDefault()?.ErrorMessage));
            }

            var appRelease = new AppRelease()
            {
                Title       = appReleaseInput.Title,
                Description = appReleaseInput.Description,
                Version     = appReleaseInput.Version,
                APKFile     = appReleaseInput.APKFile,
            };

            var result = await appReleaseRepository.CreateAppRelease(appRelease);

            if (result is Error)
            {
                return(result);
            }

            await eventSender.SendAsync("OnNewAppRelease", (AppRelease)result);

            return(result);
        }
示例#4
0
 public AppReleaseInfo(UserModel m, AppRelease r)
 {
     Id               = r.Id;
     AppVersion       = r.AppVersion;
     AddinRootVersion = r.AddinRootVersion;
     LastUpdateTime   = r.LastUpdateTime;
     if (r.CompatibleAppReleaseId != null)
     {
         var cr = m.GetAppRelease(r.CompatibleAppReleaseId.Value);
         CompatibleAppVersion = cr.AppVersion;
     }
     ZipUrl = "/Project/AppReleasePackage/" + Id;
 }
示例#5
0
        public async Task <IAppReleaseResult> UpdateAppRelease(AppRelease release)
        {
            var result = db.Update(release);

            try
            {
                await db.SaveChangesAsync();
            }
            catch (UniqueConstraintException)
            {
                return(new Error(localizer[ErrorCodes.AppReleaseAlreadyExists, release.Version]));
            }

            return(result.Entity);
        }
示例#6
0
        public ActionResult UpdateRelease(AppRelease release)
        {
            AppRelease rp = CurrentUserModel.GetAppRelease(release.Id);

            rp.AppVersion             = release.AppVersion;
            rp.AddinRootVersion       = release.AddinRootVersion;
            rp.CompatibleAppReleaseId = release.CompatibleAppReleaseId;
            if (release.ZipUrl != null)
            {
                CurrentUserModel.UpdateAppReleaseFileFromUrl(rp, release.ZipUrl);
            }
            else
            {
                CurrentUserModel.UpdateAppRelease(rp, Request.Files.Count > 0 ? Request.Files[0] : null);
            }
            return(RedirectToAction("Index", "Admin"));
        }
示例#7
0
 public void CreateAppRelease(LoginInfo login, string version, string addinsVersion, string compatibleVersion)
 {
     using (UserModel m = GetUserModel(login)) {
         AppRelease rel = new AppRelease();
         rel.AppVersion       = version;
         rel.AddinRootVersion = addinsVersion;
         if (!string.IsNullOrEmpty(compatibleVersion))
         {
             var compatRel = m.GetAppReleases().FirstOrDefault(r => r.AppVersion == compatibleVersion);
             if (compatRel != null)
             {
                 rel.CompatibleAppReleaseId = compatRel.Id;
             }
             else
             {
                 throw new Exception("Invalid compatible release number. Release '" + compatibleVersion + "' not found");
             }
         }
         m.CreateAppRelease(rel, null);
         Cydin.Builder.BuildService.UpdateRepositories(true);
     }
 }
示例#8
0
        public ActionResult AppReleasePackage(int id)
        {
            AppRelease release = CurrentServiceModel.GetAppRelease(id);

            return(File(release.ZipPath, "application/zip", Path.GetFileName(release.ZipPath)));
        }
示例#9
0
 public ActionResult CreateRelease(AppRelease release)
 {
     CurrentUserModel.CreateAppRelease(release, Request.Files.Count > 0 ? Request.Files[0] : null);
     return(RedirectToAction("Index", "Admin"));
 }