public bool GoLive(Guid applicationId) { Application application; using (var uow = Update()) { var da = new ApplicationDataAccess(uow); application = da.GetApplicationById(applicationId); if (!ApplicationSecurity.CanEditApplication(Context, application)) { throw new ChalkableSecurityException(ChlkResources.ERR_APP_INVALID_RIGHTS); } if (application.State == ApplicationStateEnum.Approved) { var appInfo = BaseApplicationInfo.Create(application); Application orignApplication; if (application.OriginalRef.HasValue) { orignApplication = da.GetApplicationById(application.OriginalRef.Value); } else { orignApplication = new Application { SecretKey = application.SecretKey, Id = Guid.Empty }; application.CreateDateTime = DateTime.UtcNow; } orignApplication = EditApplication(orignApplication, appInfo, true, ApplicationStateEnum.Live); application.State = ApplicationStateEnum.Draft; if (!application.OriginalRef.HasValue) { application.OriginalRef = orignApplication.Id; } da.Update(application); uow.Commit(); return(true); } } return(false); }
public ActionResult Create(Guid developerId, string name) { if (string.IsNullOrEmpty(name)) { return(Json(new ChalkableException(ChlkResources.ERR_APP_NAME_MISSING))); } if (MasterLocator.ApplicationUploadService.Exists(null, name, null)) { return(Json(new ChalkableException(ChlkResources.ERR_APP_DUPLICATE_NAME))); } var appInfo = BaseApplicationInfo.Create(new ShortApplicationInfo { Name = name }, developerId); var application = MasterLocator.ApplicationUploadService.Create(appInfo); if (application != null) { MasterLocator.UserTrackingService.CreatedApp(Context.Login, application.Name); } return(Json(PrepareAppInfo(MasterLocator, application, true, true))); }