Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using radario2.Models.Rest.Models;
- using ServiceStack.CacheAccess;
- using ServiceStack.CacheAccess.Providers;
- using ServiceStack.ServiceHost;
- using ServiceStack.ServiceInterface;
- using ServiceStack.ServiceInterface.Auth;
- using ServiceStack.Text;
- using ServiceStack.WebHost.Endpoints;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- namespace radario2.Rest.Services {
- public class ApiServiceHost : AppHostBase {
- public const string ReadPermission = "Read";
- public const string WritePermission = "Write";
- public ApiServiceHost() : base("SS:Service", typeof(ApiServiceHost).Assembly) { }
- public override void Configure(Funq.Container container) {
- JsConfig.IncludeNullValues = true;
- JsConfig.EmitCamelCaseNames = true;
- //Cahche!
- container.Register<ICacheClient>(new MemoryCacheClient());
- container.Register<ISessionFactory>(c => new SessionFactory(c.Resolve<ICacheClient>()));
- ConfigureAuth(container);
- RegisterRoutes();
- }
- private void RegisterRoutes()
- {
- Routes
- .Add<UserInfoService.RequestDTO>("/users/{UserId}/info")
- .Add<UserOrderService.RequestDTO>("/users/{UserId}/orders")
- .Add<UserOrderTicketService.RequestDTO>("/users/{UserOrderId}/tickets")
- .Add<UserSearchService.RequestDTO>("/user/{Type}/{SearchString}")
- .Add<EventService.RequestDTO>("/events")
- .Add<PassedEventService.RequestDTO>("/events/passed")
- .Add<EventService.RequestDTO>("/events/{Id}")
- .Add<TicketService.RequestDTO>("/events/{EventId}/tickets")
- .Add<TicketTypeService.RequestDTO>("/events/{EventId}/ticket-types")
- .Add<OrderService.Req>("/orders")
- .Add<OrderService.Req>("/orders/{Id}")
- .Add<OrderService.ResendTicketsReq>("/orders/{Id}/resend-tickets")
- .Add<OrderDetailsService.RequestDTO>("/orders/{Id}/details")
- .Add<TicketService.RequestDTO>("/orders/{OrderId}/tickets")
- .Add<OrderPaymentStatusService.RequestDTO>("/orders/{UserOrderId}/payment")
- .Add<OrderFinderService.Req>("/find-order")
- .Add<TrackCampaignService.RequestDTO>("/tracks")
- .Add<AudienceService.RequestDTO>("/audience")
- .Add<AudienceService.RequestDTO>("/audience/{EventId}")
- .Add<HostService.GetRequest>("/hosts")
- .Add<HostService.PutRequest>("/hosts/{Id}")
- .Add<DataPeriod>("/reg-statistic")
- .Add<DataPeriod>("/reg-statistic/{Begin}/{End}")
- .Add<HostBillingItemService.RequestDTO>("/billing/hosts/items")
- .Add<HostBillingItemService.RequestDTO>("/billing/hosts/{Id}/items")
- .Add<HostBillingService.RequestDTO>("/billing/hosts")
- .Add<HostBillingService.RequestDTO>("/billing/hosts/{Id}")
- .Add<ConcertEventsRefreshesService.RequestDTO>("/concertRefreshes/{City}")
- .Add<ConcertEventsService.RequestDTO>("/concertEvents/{City}/{OrderNumber}")
- .Add<ConcertMarkService.RequestDTO>("/mark/{Link}")
- .Add<ReportService.RequestDTO>("/reports/{eventId}")
- .Add<ReportService.RequestDTO>("/reports/{eventId}/{reportId}")
- .Add<CompanyReportService.RequestDTO>("/companyReports/{companyId}")
- .Add<CompanyReportService.RequestDTO>("/companyReports/{companyId}/{reportId}")
- .Add<ReportGenerationService.RequestDTO>("/reports/create/{Id}")
- .Add<ReportDownloadService.RequestDTO>("/reports/download/{ReportId}")
- .Add<CompanyReportDownloadService.RequestDTO>("/companyReports/download/{ReportId}")
- .Add<EventReportsService.RequestDTO>("/eventReports/{From}/{To}")
- .Add<CompaniesListService.RequestDTO>("/companyReportsList")
- .Add<CompanyInfoService.RequestDTO>("/company/{CompanyId}")
- .Add<PartnerService.RequestDTO>("/partners")
- .Add<OnePartnerService.RequestDTO>("/partners/{Id}")
- .Add<OnePartnerReferalsService.RequestDTO>("/partners/referals/{Id}")
- .Add<MailerRealeseSubmitService.RequestDTO>("/Sender/SendMailsToRecipients")
- .Add<MailerTestSubmitService.RequestDTO>("/Sender/SendTestMail")
- .Add<MailerGetCountService.RequestDTO>("/Sender/GetCount")
- .Add<MailerStatistic.RequestDTO>("/Sender/GetStatistic")
- .Add<GetOnePartnerService.RequestDTO>("/partner/{Id}")
- .Add<CompanyListService.RequestDTO>("/companies")
- .Add<DevicesAddService.RequestDTO>("/devices/add")
- .Add<DeviceUpdateService.RequestDTO>("/devices/update")
- .Add<DeviceDeleteService.RequestDTO>("/devices/delete")
- .Add<DevicesService.RequestDTO>("/devices")
- .Add<RightsService.RequestDTO>("/rights")
- .Add<RightsService.RequestDTO>("/rights/{Id}/{TypeOfCategory}")
- .Add<GetClusters.RequestDTO>("/clusters/get")
- .Add<GetClusters.RequestDTO>("/clusters/get/{EventId}")
- .Add<AddEventToCluster.RequestDTO>("/clusters/add/{ClusterId}/{EventId}")
- .Add<DeleteEventFromCluster.RequestDTO>("/clusters/del/{ClusterId}/{EventId}")
- .Add<GetEventsForCluster.RequestDTO>("/clusters/getEvents")
- .Add<CloseSalesService.CloseSalesRequestDTO>("/event/closeSales")
- .Add<CloseSalesService.SendActRequestDTO>("/event/sendAct")
- .Add<ReportInfoService.GetReq>("/host/reportInfo/{CompanyId}")
- .Add<ReportInfoService.PostReq>("/host/reportInfo/save", "POST")
- .Add<StartPageService.CountRequestDTO>("/orders/sum")
- .Add<RefundService.OrderRequestDto>("/refund/order", "POST")
- .Add<RefundService.TicketRequestDto>("/refund/ticket", "POST")
- .Add<ProfitService.RequestDTO>("/profit/{cityId}/{from}/{to}")
- .Add<CityService.RequestDTO>("/cities")
- .Add<ExcludeListService.DTO>("/exclude-emails")
- .Add<StartPageService.HostCountRequestDTO>("/host/get_count")
- .Add<StartPageService.SalesStatisticsRequestDTO>("/sales/by/{type}");
- }
- private void ConfigureAuth(Funq.Container container) {
- Plugins.Add(new AuthFeature(() => new AuthUserSession(), new IAuthProvider[] {
- new CredentialsAuthProvider() {
- SessionExpiry = TimeSpan.FromDays(10),
- }
- //new DigestAuthProvider()
- //new BasicAuthProvider()
- }));
- var userRep = new InMemoryAuthRepository();
- container.Register<IUserAuthRepository>(userRep);
- CreateUsers(userRep);
- }
- private void CreateUsers(IUserAuthRepository userRepository) {
- string hash;
- string salt;
- string userName = "lena";
- string password = "rbylth";
- new SaltedHash().GetHashAndSaltString(password, out hash, out salt);
- UserAuth user = new UserAuth {
- Id = 1,
- DisplayName = "Mr. Writer",
- Email = "writer@if.com",
- UserName = userName,
- FirstName = "Mr.",
- LastName = "Writer",
- PasswordHash = hash,
- Salt = salt,
- Permissions = new List<string>(new[] { ReadPermission, WritePermission })
- };
- userRepository.CreateUserAuth(user, password);
- userName = "reader";
- password = "2canread4";
- new SaltedHash().GetHashAndSaltString(password, out hash, out salt);
- user = new UserAuth {
- Id = 1,
- DisplayName = "Mr. Reader",
- Email = "reader@if.com",
- UserName = userName,
- FirstName = "Mr.",
- LastName = "Reader",
- PasswordHash = hash,
- Salt = salt,
- Permissions = new List<string> { ReadPermission }
- };
- userRepository.CreateUserAuth(user, password);
- userName = "findorder";
- password = "Hd8Lhe7FG";
- new SaltedHash().GetHashAndSaltString(password, out hash, out salt);
- user = new UserAuth {
- Id = 2,
- DisplayName = "Order Finder",
- Email = "finder@if.com",
- UserName = userName,
- PasswordHash = hash,
- Salt = salt,
- Permissions = new List<string>()
- };
- userRepository.CreateUserAuth(user, password);
- userName = "konstantin";
- password = "qwertyp0p";
- new SaltedHash().GetHashAndSaltString(password, out hash, out salt);
- user = new UserAuth {
- Id = 1,
- DisplayName = "Mr. Writer",
- Email = "konstantin@radario.ru",
- UserName = userName,
- FirstName = "Mr.",
- LastName = "Writer",
- PasswordHash = hash,
- Salt = salt,
- Permissions = new List<string>(new[] { ReadPermission, WritePermission })
- };
- userRepository.CreateUserAuth(user, password);
- //userName = "moscow";
- //password = "4capital";
- //new SaltedHash().GetHashAndSaltString(password, out hash, out salt);
- //user = new UserAuth {
- // Id = 1,
- // DisplayName = "Mr. Moscow",
- // Email = "moscow@if.com",
- // UserName = userName,
- // FirstName = "Mr.",
- // LastName = "Moscow",
- // PasswordHash = hash,
- // Salt = salt,
- // Permissions = new List<string>(new string[] { "Read", "Write" })
- //};
- //userRepository.CreateUserAuth(user, password);
- }
- public static void Start() {
- new ApiServiceHost().Init();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement