Пример #1
0
        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);
        }
Пример #2
0
        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)));
        }