Compare commits

..

2 Commits

Author SHA1 Message Date
Ricardo Carneiro
950400e0a8 fix: ajustes de cores, fontes, cantos arredondados, etc. 2024-09-29 23:53:57 -03:00
Ricardo Carneiro
8c43814ffd feat? pagina de pagamentos 2024-09-19 11:43:12 -03:00
2115 changed files with 15975 additions and 314 deletions

View File

@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Blinks.Domain.Entities
{
public class BusinessAreas
{
public BusinessAreas() { }
public string Name { get; set; }
}
}

View File

@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Blinks.Domain.Entities
{
internal class BusinessAres
{
}
}

View File

@ -3,9 +3,9 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using VCart.Domain.ValueObjects;
using Blinks.Domain.ValueObjects;
namespace VCart.Domain.Entities
namespace Blinks.Domain.Entities
{
public class PersonUser
{
@ -16,6 +16,8 @@ namespace VCart.Domain.Entities
public string LastName => Name.LastName;
public Email Email { get; private set; }
public DateChanged DateChanged { get; private set; }
public bool IsCompleted { get; private set; }
public int CountryId { get; private set; }
public int BusinessAreaId { get; private set; }
}
}

View File

@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Blinks.Domain.Entities
{
public class UserPlan
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public string UserPlanId { get; set; }
}
}

View File

@ -4,7 +4,7 @@ using System.Diagnostics.Metrics;
using System.IO;
using System.Reflection.Emit;
namespace VCart.Domain
namespace Blinks.Domain
{
public class DateBirth : AValueObject
{

View File

@ -1,7 +1,8 @@

using BaseDomain;
using System.Globalization;
namespace VCart.Domain
namespace Blinks.Domain
{
public class DateChanged : AValueObject
{
@ -15,6 +16,11 @@ namespace VCart.Domain
this.Value = dateTime;
}
public DateChanged(string dateTime)
{
this.Value = Convert.ToDateTime(dateTime, new CultureInfo("pt-BR"));
}
public DateTime? Value { get; private set; }
public override bool GetValidationExpression()

View File

@ -1,7 +1,7 @@
using BaseDomain;
using System.Net.Mail;
namespace VCart.Domain
namespace Blinks.Domain
{
public class Email : AValueObject
{

View File

@ -5,7 +5,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace VCart.Domain.ValueObjects
namespace Blinks.Domain.ValueObjects
{
public class Id : AValueObject
{

View File

@ -1,6 +1,6 @@
using BaseDomain;
namespace VCart.Domain
namespace Blinks.Domain
{
public class Name : AValueObject
{

View File

@ -1,7 +1,7 @@
using BaseDomain;
using System.Text.RegularExpressions;
namespace VCart.Domain
namespace Blinks.Domain
{
public class Phone : AValueObject
{

View File

@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace VCart.Domain.ValueObjects
namespace Blinks.Domain.ValueObjects
{
public class Username
{

View File

@ -6,4 +6,9 @@
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="MongoDB.Bson" Version="2.28.0" />
<PackageReference Include="MongoDB.Driver" Version="2.28.0" />
</ItemGroup>
</Project>

View File

@ -1,7 +0,0 @@
namespace VCart.Infra
{
public class Class1
{
}
}

View File

@ -0,0 +1,22 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MongoDB.Driver;
namespace Blinks.Infra.MongoDB
{
public class MongoDbContext
{
private readonly IMongoDatabase _database;
public MongoDbContext(string connectionString, string databaseName)
{
var client = new MongoClient(connectionString);
_database = client.GetDatabase(databaseName);
}
public IMongoCollection<PersonUser> Users => _database.GetCollection<PersonUser>("Users");
}
}

View File

@ -0,0 +1,34 @@
using global::MongoDB.Bson.Serialization.Attributes;
using global::MongoDB.Bson;
namespace Blinks.Infra.MongoDB
{
public class PersonUser
{
[BsonId]
[BsonRepresentation(BsonType.ObjectId)]
public string Id { get; set; }
[BsonElement("Nome")]
public string Nome { get; set; }
[BsonElement("Email")]
public string Email { get; set; }
[BsonElement("País")]
public string Pais { get; set; }
[BsonElement("AreaDeNegocio")]
public string AreaDeNegocio { get; set; }
[BsonElement("Completado")]
public bool Completado { get; set; }
[BsonElement("Valido")]
public bool Valido { get; set; }
[BsonElement("DataHoraCriacao")]
public DateTime DataHoraCriacao { get; set; }
}
}

41
VCart/Blinks.csproj Normal file
View File

@ -0,0 +1,41 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<UserSecretsId>61881b6e-e2bb-4a8a-b8d2-23b733cdaea3</UserSecretsId>
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
<DockerfileContext>.</DockerfileContext>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Authentication.Google" Version="8.0.7" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.MicrosoftAccount" Version="8.0.7" />
<PackageReference Include="Stripe.net" Version="45.13.0" />
</ItemGroup>
<ItemGroup>
<Folder Include="Views\CartHome\" />
<Folder Include="wwwroot\img\" />
</ItemGroup>
<ItemGroup>
<Compile Update="Resource.Designer.cs">
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
<DependentUpon>Resource.resx</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Update="Resource.pt-BR.resx">
<Generator>PublicResXFileCodeGenerator</Generator>
</EmbeddedResource>
<EmbeddedResource Update="Resource.resx">
<Generator>PublicResXFileCodeGenerator</Generator>
<LastGenOutput>Resource.Designer.cs</LastGenOutput>
</EmbeddedResource>
</ItemGroup>
</Project>

View File

@ -1,6 +1,6 @@
using Microsoft.AspNetCore.Mvc;
namespace VCart.Controllers
namespace Blinks.Controllers
{
public class CartHomeController : Controller
{

View File

@ -1,8 +1,8 @@
using Microsoft.AspNetCore.Mvc;
using System.Diagnostics;
using VCart.Models;
using Blinks.Models;
namespace VCart.Controllers
namespace Blinks.Controllers
{
public class HomeController : Controller
{

View File

@ -0,0 +1,21 @@
using Microsoft.AspNetCore.Mvc;
using System.Globalization;
namespace Blinks.Controllers
{
public class LanguageController : Controller
{
public ActionResult ChangeLanguage(string lang)
{
if (!string.IsNullOrEmpty(lang))
{
Thread.CurrentThread.CurrentCulture = new CultureInfo(lang);
Thread.CurrentThread.CurrentUICulture = new CultureInfo(lang);
}
Response.Cookies.Append("Language", lang, new CookieOptions { Expires = DateTimeOffset.UtcNow.AddYears(1) });
return Redirect(Request.Headers["Referer"].ToString());
}
}
}

View File

@ -4,15 +4,17 @@ using System.Security.Claims;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Authentication.Cookies;
using Microsoft.AspNetCore.Authentication;
using Stripe;
namespace VCart.Controllers
namespace Blinks.Controllers
{
public class LoginController : Controller
{
private readonly ILogger<LoginController> logger;
private readonly IHttpClientFactory httpClientFactory;
private readonly StripeClient _stripeClient;
public LoginController(ILogger<LoginController> logger, IHttpClientFactory httpClientFactory)
public LoginController(ILogger<LoginController> logger, IHttpClientFactory httpClientFactory)
{
this.logger = logger;
this.httpClientFactory = httpClientFactory;
@ -23,15 +25,24 @@ namespace VCart.Controllers
return View("~/Views/Login/Index.cshtml");
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult ExternalLogin(string provider, string returnUrl)
{
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult ExternalLogin(string provider, string returnUrl)
{
var redirectUrl = Url.Action("ExternalLoginCallback", "Login", new { ReturnUrl = returnUrl });
var properties = new AuthenticationProperties { RedirectUri = "https://localhost:44377" + redirectUrl};
var properties = new AuthenticationProperties { RedirectUri = "http://localhost:5094" + redirectUrl };
return Challenge(properties, "Microsoft");
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult ExternalLoginGoogle(string provider, string returnUrl)
{
var redirectUrl = Url.Action("ExternalLoginCallback", "Login", new { ReturnUrl = returnUrl });
var properties = new AuthenticationProperties { RedirectUri = "http://localhost:5094" + redirectUrl };
return Challenge(properties, "Google");
}
[AllowAnonymous]
[HttpGet]
public async Task<ActionResult> ExternalLoginCallback(string code="")
@ -43,8 +54,9 @@ namespace VCart.Controllers
var claims = new List<Claim>
{
new Claim(ClaimTypes.Name, emailExist),
new Claim("FullName", HttpContext.User.FindFirst(ClaimTypes.GivenName).Value),
new Claim(ClaimTypes.Role, "Administrator"),
new Claim("FirstName", HttpContext.User.FindFirst(ClaimTypes.GivenName).Value),
new Claim("FullName", HttpContext.User.FindFirst(ClaimTypes.GivenName).Value + " " + HttpContext.User.FindFirst(ClaimTypes.Surname).Value),
new Claim(ClaimTypes.Role, "User"),
};
var claimsIdentity = new ClaimsIdentity(
@ -81,9 +93,7 @@ namespace VCart.Controllers
new ClaimsPrincipal(claimsIdentity),
authProperties);
return RedirectToAction("Index", "Home");
return RedirectToAction("Index", "Startup");
}
ViewBag.ErrorTitle = $"Email claim not received from: Microsoft";
ViewBag.ErrorMessage = "Please contact support on info@dotnettutorials.net";

View File

@ -0,0 +1,73 @@
using Microsoft.AspNetCore.Mvc;
using Stripe;
using Stripe.Checkout;
namespace Blinks.Controllers
{
[Route("Pay")]
public class PayController : Controller
{
private string domain = "";
public PayController()
{
domain = "http://192.168.0.27:5094/";
}
public IActionResult Index()
{
return View();
}
[HttpPost("createbio")]
public ActionResult CreateBio()
{
StripeConfiguration.ApiKey = "sk_test_51PvIzkBk8jHwC3c0sGuWDUO8MV9KeOdSkir3Ulo2RZWmUhJLBIAgzxQScuomVi2l333MNmi0yr3FgeFv7OZnCJ0j00hD94yGx1";
var options = new SessionCreateOptions
{
UiMode = "embedded",
LineItems = new List<SessionLineItemOptions>
{
new SessionLineItemOptions
{
// Provide the exact Price ID (for example, pr_1234) of the product you want to sell
Price = "price_1Q1CXGBk8jHwC3c0YwypjEVd",
Quantity = 1,
},
},
Mode = "subscription",
ReturnUrl = domain + "/Plans/OrderView?SessionId={CHECKOUT_SESSION_ID}",
};
var service = new SessionService();
Session session = service.Create(options);
return Json(new { clientSecret = session.ClientSecret });
}
[HttpPost("createcatalogo")]
public ActionResult CreateCatalogo()
{
StripeConfiguration.ApiKey = "sk_test_51PvIzkBk8jHwC3c0sGuWDUO8MV9KeOdSkir3Ulo2RZWmUhJLBIAgzxQScuomVi2l333MNmi0yr3FgeFv7OZnCJ0j00hD94yGx1";
var options = new SessionCreateOptions
{
UiMode = "embedded",
LineItems = new List<SessionLineItemOptions>
{
new SessionLineItemOptions
{
// Provide the exact Price ID (for example, pr_1234) of the product you want to sell
Price = "price_1Q1CjvBk8jHwC3c03D82tbH8",
Quantity = 1,
},
},
Mode = "subscription",
ReturnUrl = domain + "/Plans/OrderView?SessionId={CHECKOUT_SESSION_ID}",
};
var service = new SessionService();
Session session = service.Create(options);
return Json(new { clientSecret = session.ClientSecret });
}
}
}

View File

@ -0,0 +1,40 @@
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
using Stripe;
using Stripe.Checkout;
using Blinks.Models;
namespace Blinks.Controllers
{
public class PlansController : Controller
{
private string domain = "";
public PlansController()
{
domain = "http://192.168.0.27:5094/";
}
public IActionResult Index()
{
return View();
}
public IActionResult Pay(string ammount)
{
return View();
}
public IActionResult OrderView([FromQuery] string SessionId)
{
var sessionService = new SessionService();
Session session = sessionService.Get(SessionId);
ViewBag.Status = session.RawJObject["status"];
ViewBag.CustomerEmail = session.RawJObject["customer_details"]["email"];
//return Json(new { status = session.RawJObject["status"], customer_email = session.RawJObject["customer_details"]["email"] });
return View();
}
}
}

View File

@ -1,7 +1,7 @@
using Microsoft.AspNetCore.Mvc;
using System.Diagnostics;
namespace VCart.Controllers
namespace Blinks.Controllers
{
[Route("signin-microsoft")]
public class SignInController : Controller

View File

@ -0,0 +1,12 @@
using Microsoft.AspNetCore.Mvc;
namespace Blinks.Controllers
{
public class StartupController : Controller
{
public IActionResult Index()
{
return View();
}
}
}

View File

@ -7,16 +7,16 @@ EXPOSE 443
FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build
WORKDIR /src
COPY ["VCart.csproj", "."]
RUN dotnet restore "./VCart.csproj"
COPY ["Blinks.csproj", "."]
RUN dotnet restore "./Blinks.csproj"
COPY . .
WORKDIR "/src/."
RUN dotnet build "VCart.csproj" -c Release -o /app/build
RUN dotnet build "Blinks.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "VCart.csproj" -c Release -o /app/publish /p:UseAppHost=false
RUN dotnet publish "Blinks.csproj" -c Release -o /app/publish /p:UseAppHost=false
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "VCart.dll"]
ENTRYPOINT ["dotnet", "Blinks.dll"]

View File

@ -0,0 +1,29 @@
namespace Blinks.Middle
{
using Microsoft.AspNetCore.Http;
using System.Globalization;
using System.Threading.Tasks;
public class RequestLocalizationMiddleware
{
private readonly RequestDelegate _next;
public RequestLocalizationMiddleware(RequestDelegate next)
{
_next = next;
}
public async Task InvokeAsync(HttpContext context)
{
var cookie = context.Request.Cookies["Language"];
if (!string.IsNullOrEmpty(cookie))
{
var culture = new CultureInfo(cookie);
CultureInfo.CurrentCulture = culture;
CultureInfo.CurrentUICulture = culture;
}
await _next(context);
}
}
}

View File

@ -0,0 +1,7 @@
namespace Blinks.Models
{
public class ChangeViewModel
{
public string ChargeId { get; set; }
}
}

View File

@ -1,4 +1,4 @@
namespace VCart.Models
namespace Blinks.Models
{
public class ErrorViewModel
{

9
VCart/Models/Payment.cs Normal file
View File

@ -0,0 +1,9 @@
namespace Blinks.Models
{
public class Payment
{
public int Amount { get; set; }
public string Currency { get; set; }
public string Description { get; set; }
}
}

View File

@ -32,7 +32,7 @@
},
"projects": [
{
"path": "VCart.csproj",
"path": "Blinks.csproj",
"startingProject": true,
"issues": 1,
"storyPoints": 1,
@ -40,7 +40,7 @@
{
"incidentId": "1161414d-b2e4-4447-9d34-e811b563e1c5",
"ruleId": "NuGet.0001",
"projectPath": "VCart.csproj",
"projectPath": "Blinks.csproj",
"state": "Active",
"location": {
"snippetModel": {
@ -48,7 +48,7 @@
"protected": "Microsoft.VisualStudio.Azure.Containers.Tools.Targets, 1.19.4\n\nRecommendation:\n\nNo supported version found"
},
"kind": "File",
"path": "VCart.csproj",
"path": "Blinks.csproj",
"snippet": "Microsoft.VisualStudio.Azure.Containers.Tools.Targets, 1.19.4\n\nRecommendation:\n\nNo supported version found",
"protectedSnippet": "Microsoft.VisualStudio.Azure.Containers.Tools.Targets, 1.19.4\n\nRecommendation:\n\nNo supported version found",
"label": "Microsoft.VisualStudio.Azure.Containers.Tools.Targets 1.19.4"
@ -57,7 +57,7 @@
]
},
{
"path": "C:\\vscode\\vcart.me.mvc\\VCart.Domain\\VCart.Domain.csproj",
"path": "C:\\vscode\\Blinks.me.mvc\\Blinks.Domain\\Blinks.Domain.csproj",
"startingProject": true,
"issues": 1,
"storyPoints": 1,
@ -65,7 +65,7 @@
{
"incidentId": "2fdd89a6-9f8d-4428-8845-41d048dcaf73",
"ruleId": "Project.0002",
"projectPath": "C:\\vscode\\vcart.me.mvc\\VCart.Domain\\VCart.Domain.csproj",
"projectPath": "C:\\vscode\\Blinks.me.mvc\\Blinks.Domain\\Blinks.Domain.csproj",
"state": "Active",
"location": {
"snippetModel": {
@ -73,7 +73,7 @@
"protected": "Current: net7.0\nNew: net8.0"
},
"kind": "File",
"path": "C:\\vscode\\vcart.me.mvc\\VCart.Domain\\VCart.Domain.csproj",
"path": "C:\\vscode\\Blinks.me.mvc\\Blinks.Domain\\Blinks.Domain.csproj",
"snippet": "Current: net7.0\nNew: net8.0",
"protectedSnippet": "Current: net7.0\nNew: net8.0"
}

View File

@ -1,5 +1,12 @@
using Microsoft.AspNetCore.Authentication.Cookies;
using Microsoft.AspNetCore.Authentication.Google;
using Microsoft.AspNetCore.Authentication.MicrosoftAccount;
using Microsoft.AspNetCore.Localization;
using Microsoft.AspNetCore.Mvc.Razor;
using Microsoft.Extensions.Options;
using Stripe;
using Stripe.Forwarding;
using System.Globalization;
var builder = WebApplication.CreateBuilder(args);
@ -22,17 +29,48 @@ options =>
options.SlidingExpiration = true;
options.AccessDeniedPath = "/Forbidden/";
})
.AddGoogle(googleOptions =>
{
googleOptions.ClientId = config["Authentication:Google:ClientId"];
googleOptions.ClientSecret = config["Authentication:Google:ClientSecret"];
})
.AddMicrosoftAccount(microsoftOptions =>
{
microsoftOptions.ClientId = config["Authentication:Microsoft:ClientId"];
//microsoftOptions.ClientSecret = "2a7cb1bd-037a-49fa-9e5e-2b2655431af9";
microsoftOptions.ClientSecret = config["Authentication:Microsoft:ClientSecret"];
})
;
builder.Services.AddLocalization(options => options.ResourcesPath = "Resources");
builder.Services.AddMvc()
.AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix)
.AddDataAnnotationsLocalization();
builder.Services.Configure<RequestLocalizationOptions>(options =>
{
var supportedCultures = new List<CultureInfo>
{
new CultureInfo("pt-BR"),
new CultureInfo("en")
};
options.DefaultRequestCulture = new RequestCulture("pt-BR");
options.SupportedCultures = supportedCultures;
options.SupportedUICultures = supportedCultures;
});
StripeConfiguration.ApiKey = builder.Configuration["Stripe:SecretKey"];
builder.Services.AddControllersWithViews();
builder.Services.AddHttpClient();
var app = builder.Build();
var locOptions = app.Services.GetService<IOptions<RequestLocalizationOptions>>();
app.UseRequestLocalization(locOptions.Value);
app.UseMiddleware<RequestLocalizationMiddleware>();
// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
@ -55,5 +93,6 @@ app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
app.UseRequestLocalization();
app.Run();

3
VCart/Readme.md Normal file
View File

@ -0,0 +1,3 @@
Obter temas para o bootstrap:
https://www.bootpress.org/bootstrap.html?page=2of13

414
VCart/Resource.Designer.cs generated Normal file
View File

@ -0,0 +1,414 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Blinks {
using System;
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
public class Resource {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resource() {
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
public static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Blinks.Resource", typeof(Resource).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
public static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
/// <summary>
/// Looks up a localized string similar to Food and Drink.
/// </summary>
public static string BU_Alimentacao {
get {
return ResourceManager.GetString("BU_Alimentacao", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Beauty.
/// </summary>
public static string BU_Beleza {
get {
return ResourceManager.GetString("BU_Beleza", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Construction.
/// </summary>
public static string BU_Construção {
get {
return ResourceManager.GetString("BU_Construção", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Education.
/// </summary>
public static string BU_Educacao {
get {
return ResourceManager.GetString("BU_Educacao", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Green businesses.
/// </summary>
public static string BU_Empreendedorismo {
get {
return ResourceManager.GetString("BU_Empreendedorismo", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Health &amp; Care.
/// </summary>
public static string BU_Saúde {
get {
return ResourceManager.GetString("BU_Saúde", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to PET and Animals.
/// </summary>
public static string BU_SetorPET {
get {
return ResourceManager.GetString("BU_SetorPET", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Information tecnology.
/// </summary>
public static string BU_TI {
get {
return ResourceManager.GetString("BU_TI", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Logistics.
/// </summary>
public static string BU_TransporteLogistica {
get {
return ResourceManager.GetString("BU_TransporteLogistica", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Clothes.
/// </summary>
public static string BU_Vestuário {
get {
return ResourceManager.GetString("BU_Vestuário", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Business Area.
/// </summary>
public static string BusinessAreaLabel {
get {
return ResourceManager.GetString("BusinessAreaLabel", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Enter business area.
/// </summary>
public static string BusinessAreaPlaceholder {
get {
return ResourceManager.GetString("BusinessAreaPlaceholder", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Change language to find your country..
/// </summary>
public static string ChangeLanguage {
get {
return ResourceManager.GetString("ChangeLanguage", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Angola.
/// </summary>
public static string Country_Angola_Label {
get {
return ResourceManager.GetString("Country_Angola_Label", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Australia.
/// </summary>
public static string Country_Australia_Label {
get {
return ResourceManager.GetString("Country_Australia_Label", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Brazil.
/// </summary>
public static string Country_Brasil_Label {
get {
return ResourceManager.GetString("Country_Brasil_Label", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Cabo Verde.
/// </summary>
public static string Country_CaboVerde_Label {
get {
return ResourceManager.GetString("Country_CaboVerde_Label", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Canada.
/// </summary>
public static string Country_Canada_Label {
get {
return ResourceManager.GetString("Country_Canada_Label", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to USA.
/// </summary>
public static string Country_EUA_Label {
get {
return ResourceManager.GetString("Country_EUA_Label", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Philipinas.
/// </summary>
public static string Country_Filipinas_Label {
get {
return ResourceManager.GetString("Country_Filipinas_Label", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Gana.
/// </summary>
public static string Country_Gana_Label {
get {
return ResourceManager.GetString("Country_Gana_Label", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Guine Bissau.
/// </summary>
public static string Country_GuineBissau_Label {
get {
return ResourceManager.GetString("Country_GuineBissau_Label", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to India.
/// </summary>
public static string Country_India_Label {
get {
return ResourceManager.GetString("Country_India_Label", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Moçambique.
/// </summary>
public static string Country_Mocambique_Label {
get {
return ResourceManager.GetString("Country_Mocambique_Label", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Niger.
/// </summary>
public static string Country_Nigeria_Label {
get {
return ResourceManager.GetString("Country_Nigeria_Label", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Paquistan.
/// </summary>
public static string Country_Paquistao_Label {
get {
return ResourceManager.GetString("Country_Paquistao_Label", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Portugal.
/// </summary>
public static string Country_Portugal_Label {
get {
return ResourceManager.GetString("Country_Portugal_Label", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Quenia.
/// </summary>
public static string Country_Quenia_Label {
get {
return ResourceManager.GetString("Country_Quenia_Label", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Timor Leste.
/// </summary>
public static string Country_TimorLeste_Label {
get {
return ResourceManager.GetString("Country_TimorLeste_Label", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to United Kingdom.
/// </summary>
public static string Country_UK_Label {
get {
return ResourceManager.GetString("Country_UK_Label", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Country.
/// </summary>
public static string CountryLabel {
get {
return ResourceManager.GetString("CountryLabel", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Enter country.
/// </summary>
public static string CountryPlaceholder {
get {
return ResourceManager.GetString("CountryPlaceholder", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Email.
/// </summary>
public static string EmailLabel {
get {
return ResourceManager.GetString("EmailLabel", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Company / Group.
/// </summary>
public static string GroupNameLabel {
get {
return ResourceManager.GetString("GroupNameLabel", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Desired group name.
/// </summary>
public static string GroupPlaceHolder {
get {
return ResourceManager.GetString("GroupPlaceHolder", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Primary Data.
/// </summary>
public static string InitialFormTitle {
get {
return ResourceManager.GetString("InitialFormTitle", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Nome.
/// </summary>
public static string NameLabel {
get {
return ResourceManager.GetString("NameLabel", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Phone number.
/// </summary>
public static string PhoneNumberLabel {
get {
return ResourceManager.GetString("PhoneNumberLabel", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Save.
/// </summary>
public static string SaveButton {
get {
return ResourceManager.GetString("SaveButton", resourceCulture);
}
}
}
}

117
VCart/Resource.pt-BR.Designer.cs generated Normal file
View File

@ -0,0 +1,117 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Blinks {
using System;
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
public class Resource___Copy {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resource___Copy() {
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
public static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("VCart.Resource - Copy", typeof(Resource___Copy).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
public static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
public static string BusinessAreaLabel {
get {
return ResourceManager.GetString("BusinessAreaLabel", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
public static string CountryLabel {
get {
return ResourceManager.GetString("CountryLabel", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
public static string EmailLabel {
get {
return ResourceManager.GetString("EmailLabel", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
public static string GroupNameLabel {
get {
return ResourceManager.GetString("GroupNameLabel", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
public static string PhoneNumberLabel {
get {
return ResourceManager.GetString("PhoneNumberLabel", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
public static string SaveButton {
get {
return ResourceManager.GetString("SaveButton", resourceCulture);
}
}
}
}

237
VCart/Resource.pt-BR.resx Normal file
View File

@ -0,0 +1,237 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="BusinessAreaLabel" xml:space="preserve">
<value>Área de negócio</value>
</data>
<data name="BusinessAreaPlaceholder" xml:space="preserve">
<value>Area de negócio</value>
</data>
<data name="BU_Alimentacao" xml:space="preserve">
<value>Alimentacao e bebidas</value>
</data>
<data name="BU_Beleza" xml:space="preserve">
<value>Beleza</value>
</data>
<data name="BU_Construção" xml:space="preserve">
<value>Construção</value>
</data>
<data name="BU_Educacao" xml:space="preserve">
<value>Educação</value>
</data>
<data name="BU_Empreendedorismo" xml:space="preserve">
<value>Empreendedorismo verde</value>
</data>
<data name="BU_Saúde" xml:space="preserve">
<value>Saúde e bem-estar</value>
</data>
<data name="BU_SetorPET" xml:space="preserve">
<value>Setor Pet</value>
</data>
<data name="BU_TI" xml:space="preserve">
<value>Tecnologia da informação &amp; Informática</value>
</data>
<data name="BU_TransporteLogistica" xml:space="preserve">
<value>Transporte e logística</value>
</data>
<data name="BU_Vestuário" xml:space="preserve">
<value>Vestuário e calçados</value>
</data>
<data name="ChangeLanguage" xml:space="preserve">
<value>Troque o idioma para verificar seu país.</value>
</data>
<data name="CountryLabel" xml:space="preserve">
<value>País</value>
</data>
<data name="CountryPlaceholder" xml:space="preserve">
<value>Selecione seu país</value>
</data>
<data name="Country_Angola_Label" xml:space="preserve">
<value>Angola</value>
</data>
<data name="Country_Australia_Label" xml:space="preserve">
<value>Australia</value>
</data>
<data name="Country_Brasil_Label" xml:space="preserve">
<value>Brazil</value>
</data>
<data name="Country_CaboVerde_Label" xml:space="preserve">
<value>Cabo Verde</value>
</data>
<data name="Country_Canada_Label" xml:space="preserve">
<value>Canada</value>
</data>
<data name="Country_EUA_Label" xml:space="preserve">
<value>EUA</value>
</data>
<data name="Country_Filipinas_Label" xml:space="preserve">
<value>Philipinas</value>
</data>
<data name="Country_Gana_Label" xml:space="preserve">
<value>Gana</value>
</data>
<data name="Country_GuineBissau_Label" xml:space="preserve">
<value>Guine Bissau</value>
</data>
<data name="Country_India_Label" xml:space="preserve">
<value>India</value>
</data>
<data name="Country_Mocambique_Label" xml:space="preserve">
<value>Moçambique</value>
</data>
<data name="Country_Nigeria_Label" xml:space="preserve">
<value>Niger</value>
</data>
<data name="Country_Paquistao_Label" xml:space="preserve">
<value>Paquistan</value>
</data>
<data name="Country_Portugal_Label" xml:space="preserve">
<value>Portugal</value>
</data>
<data name="Country_Quenia_Label" xml:space="preserve">
<value>Quenia</value>
</data>
<data name="Country_TimorLeste_Label" xml:space="preserve">
<value>Timor Leste</value>
</data>
<data name="Country_UK_Label" xml:space="preserve">
<value>United Kingdom</value>
</data>
<data name="EmailLabel" xml:space="preserve">
<value>Email</value>
</data>
<data name="GroupNameLabel" xml:space="preserve">
<value>Empresa / Grupo</value>
</data>
<data name="GroupPlaceHolder" xml:space="preserve">
<value>Nome desejado para o grupo</value>
</data>
<data name="InitialFormTitle" xml:space="preserve">
<value>Dados iniciais</value>
</data>
<data name="NameLabel" xml:space="preserve">
<value>Nome</value>
</data>
<data name="PhoneNumberLabel" xml:space="preserve">
<value>Telefone</value>
</data>
<data name="SaveButton" xml:space="preserve">
<value>Gravar</value>
</data>
</root>

237
VCart/Resource.resx Normal file
View File

@ -0,0 +1,237 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="BusinessAreaLabel" xml:space="preserve">
<value>Business Area</value>
</data>
<data name="BusinessAreaPlaceholder" xml:space="preserve">
<value>Enter business area</value>
</data>
<data name="BU_Alimentacao" xml:space="preserve">
<value>Food and Drink</value>
</data>
<data name="BU_Beleza" xml:space="preserve">
<value>Beauty</value>
</data>
<data name="BU_Construção" xml:space="preserve">
<value>Construction</value>
</data>
<data name="BU_Educacao" xml:space="preserve">
<value>Education</value>
</data>
<data name="BU_Empreendedorismo" xml:space="preserve">
<value>Green businesses</value>
</data>
<data name="BU_Saúde" xml:space="preserve">
<value>Health &amp; Care</value>
</data>
<data name="BU_SetorPET" xml:space="preserve">
<value>PET and Animals</value>
</data>
<data name="BU_TI" xml:space="preserve">
<value>Information tecnology</value>
</data>
<data name="BU_TransporteLogistica" xml:space="preserve">
<value>Logistics</value>
</data>
<data name="BU_Vestuário" xml:space="preserve">
<value>Clothes</value>
</data>
<data name="ChangeLanguage" xml:space="preserve">
<value>Change language to find your country.</value>
</data>
<data name="CountryLabel" xml:space="preserve">
<value>Country</value>
</data>
<data name="CountryPlaceholder" xml:space="preserve">
<value>Enter country</value>
</data>
<data name="Country_Angola_Label" xml:space="preserve">
<value>Angola</value>
</data>
<data name="Country_Australia_Label" xml:space="preserve">
<value>Australia</value>
</data>
<data name="Country_Brasil_Label" xml:space="preserve">
<value>Brazil</value>
</data>
<data name="Country_CaboVerde_Label" xml:space="preserve">
<value>Cabo Verde</value>
</data>
<data name="Country_Canada_Label" xml:space="preserve">
<value>Canada</value>
</data>
<data name="Country_EUA_Label" xml:space="preserve">
<value>USA</value>
</data>
<data name="Country_Filipinas_Label" xml:space="preserve">
<value>Philipinas</value>
</data>
<data name="Country_Gana_Label" xml:space="preserve">
<value>Gana</value>
</data>
<data name="Country_GuineBissau_Label" xml:space="preserve">
<value>Guine Bissau</value>
</data>
<data name="Country_India_Label" xml:space="preserve">
<value>India</value>
</data>
<data name="Country_Mocambique_Label" xml:space="preserve">
<value>Moçambique</value>
</data>
<data name="Country_Nigeria_Label" xml:space="preserve">
<value>Niger</value>
</data>
<data name="Country_Paquistao_Label" xml:space="preserve">
<value>Paquistan</value>
</data>
<data name="Country_Portugal_Label" xml:space="preserve">
<value>Portugal</value>
</data>
<data name="Country_Quenia_Label" xml:space="preserve">
<value>Quenia</value>
</data>
<data name="Country_TimorLeste_Label" xml:space="preserve">
<value>Timor Leste</value>
</data>
<data name="Country_UK_Label" xml:space="preserve">
<value>United Kingdom</value>
</data>
<data name="EmailLabel" xml:space="preserve">
<value>Email</value>
</data>
<data name="GroupNameLabel" xml:space="preserve">
<value>Company / Group</value>
</data>
<data name="GroupPlaceHolder" xml:space="preserve">
<value>Desired group name</value>
</data>
<data name="InitialFormTitle" xml:space="preserve">
<value>Primary Data</value>
</data>
<data name="NameLabel" xml:space="preserve">
<value>Nome</value>
</data>
<data name="PhoneNumberLabel" xml:space="preserve">
<value>Phone number</value>
</data>
<data name="SaveButton" xml:space="preserve">
<value>Save</value>
</data>
</root>

View File

@ -1,21 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<UserSecretsId>61881b6e-e2bb-4a8a-b8d2-23b733cdaea3</UserSecretsId>
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
<DockerfileContext>.</DockerfileContext>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Authentication.MicrosoftAccount" Version="8.0.7" />
</ItemGroup>
<ItemGroup>
<Folder Include="Views\CartHome\" />
<Folder Include="wwwroot\img\" />
</ItemGroup>
</Project>

View File

@ -3,13 +3,13 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.7.34031.279
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VCart", "VCart.csproj", "{51C3E6BC-4BBC-429F-9A7F-8C8A14E14DF4}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Blinks", "Blinks.csproj", "{51C3E6BC-4BBC-429F-9A7F-8C8A14E14DF4}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VCart.Domain", "..\VCart.Domain\VCart.Domain.csproj", "{83471C51-B081-4FAC-B5D3-24B237DEC339}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Blinks.Domain", "..\VCart.Domain\Blinks.Domain.csproj", "{83471C51-B081-4FAC-B5D3-24B237DEC339}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BaseDomain", "..\..\vcart.me\vcart.back\Struct.ValueObjects\BaseDomain.csproj", "{083273D7-7AE9-48A0-A59F-7CC03E1B4C30}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VCart.Infra", "..\VCart.Infra\VCart.Infra.csproj", "{82C3179D-BE8C-4B83-95F4-32B86448D5AC}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Blinks.Infra", "..\VCart.Infra\Blinks.Infra.csproj", "{82C3179D-BE8C-4B83-95F4-32B86448D5AC}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution

View File

@ -126,7 +126,7 @@
</div><!-- End Carousel -->
</div>
@section Style {
@section Styles {
<style>
body { padding-top: 50px; }

View File

@ -1,4 +1,4 @@
 @{
@{
ViewData["Title"] = "Home Page";
}
@ -7,6 +7,14 @@
</script>
}
@section Styles {
<style type="text/css">
.text-responsive {
font-size: calc(100% + 1vw + 1vh);
}
</style>
}
<div class="div-body">
<div class="container">
<div id="myCarousel" class="carousel slide" data-ride="carousel">
@ -20,8 +28,8 @@
<div class="carousel-item active">
<img class="first-slide" src="data:image/gif;base64,R0lGODlhAQABAIAAAHd3dwAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==" alt="First slide">
<div class="container">
<div class="carousel-caption d-none d-md-block text-left">
<h1>Example headline.</h1>
<div class="carousel-caption d-md-block text-left">
<h1 class="text-responsive">Example headline.</h1>
<p>Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec id elit non mi porta gravida at eget metus. Nullam id dolor id nibh ultricies vehicula ut id elit.</p>
<p><a class="btn btn-lg btn-primary" href="#" role="button">Sign up today</a></p>
</div>
@ -30,8 +38,8 @@
<div class="carousel-item">
<img class="second-slide" src="data:image/gif;base64,R0lGODlhAQABAIAAAHd3dwAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==" alt="Second slide">
<div class="container">
<div class="carousel-caption d-none d-md-block">
<h1>Another example headline.</h1>
<div class="carousel-caption d-md-block">
<h1 class="text-responsive">Another example headline.</h1>
<p>Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec id elit non mi porta gravida at eget metus. Nullam id dolor id nibh ultricies vehicula ut id elit.</p>
<p><a class="btn btn-lg btn-primary" href="#" role="button">Learn more</a></p>
</div>
@ -40,8 +48,8 @@
<div class="carousel-item">
<img class="third-slide" src="data:image/gif;base64,R0lGODlhAQABAIAAAHd3dwAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==" alt="Third slide">
<div class="container">
<div class="carousel-caption d-none d-md-block text-right">
<h1>One more for good measure.</h1>
<div class="carousel-caption d-md-block text-right">
<h1 class="text-responsive">One more for good measure.</h1>
<p>Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec id elit non mi porta gravida at eget metus. Nullam id dolor id nibh ultricies vehicula ut id elit.</p>
<p><a class="btn btn-lg btn-primary" href="#" role="button">Browse gallery</a></p>
</div>
@ -50,8 +58,8 @@
<div class="carousel-item">
<img class="fourth-slide" src="/img/teste1.png" alt="Fourth slide">
<div class="container">
<div class="carousel-caption d-none d-md-block text-right text-dark">
<h1>One more for good measure.</h1>
<div class="carousel-caption d-md-block text-right text-dark">
<h1 class="text-responsive">One more for good measure.</h1>
<p>Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec id elit non mi porta gravida at eget metus. Nullam id dolor id nibh ultricies vehicula ut id elit.</p>
<p><a class="btn btn-lg btn-primary" href="#" role="button">Browse gallery</a></p>
</div>

View File

@ -1,159 +1,127 @@

@*
For more information on enabling MVC for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860
*@
@{
Layout = "";
@{
ViewBag.Title = "Login / Registro";
}
<!DOCTYPE html>
<html>
<head>
<title>VCart</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.6.1/css/all.css" integrity="sha384-gfdkjb5BdAXd+lj+gudLWI+BXq4IuLW5IT+brZEZsLFm++aCMlF1V92rMkPaX4PP" crossorigin="anonymous">
@section Styles {
<style>
/* Coded with love by Mutiullah Samim */
body,
html {
margin: 0;
padding: 0;
height: 100%;
background: #C5ACD3 !important;
}
.box {
width: 500px;
margin: 200px 0;
}
.user_card {
height: 400px;
width: 350px;
margin-top: auto;
margin-bottom: auto;
background: #C1DD89;
position: relative;
display: flex;
justify-content: center;
flex-direction: column;
padding: 10px;
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
-webkit-box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
-moz-box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
border-radius: 5px;
}
.shape1 {
position: relative;
height: 150px;
width: 150px;
background-color: #0074d9;
border-radius: 80px;
float: left;
margin-right: -50px;
}
.brand_logo_container {
position: absolute;
height: 170px;
width: 170px;
top: -75px;
border-radius: 50%;
background: #C5ACD3;
padding: 10px;
text-align: center;
}
.shape2 {
position: relative;
height: 150px;
width: 150px;
background-color: #0074d9;
border-radius: 80px;
margin-top: -30px;
float: left;
}
.brand_logo {
height: 150px;
width: 150px;
border-radius: 50%;
/* border: 2px solid white;
*/ }
.shape3 {
position: relative;
height: 150px;
width: 150px;
background-color: #0074d9;
border-radius: 80px;
margin-top: -30px;
float: left;
margin-left: -31px;
}
.form_container {
margin-top: 100px;
}
.shape4 {
position: relative;
height: 150px;
width: 150px;
background-color: #0074d9;
border-radius: 80px;
margin-top: -25px;
float: left;
margin-left: -32px;
}
.login_btn {
width: 100%;
background: darkgreen !important;
color: white !important;
}
.shape5 {
position: relative;
height: 150px;
width: 150px;
background-color: #0074d9;
border-radius: 80px;
float: left;
margin-right: -48px;
margin-left: -32px;
margin-top: -30px;
}
.login_btn:focus {
box-shadow: none !important;
outline: 0px !important;
}
.shape6 {
position: relative;
height: 150px;
width: 150px;
background-color: #0074d9;
border-radius: 80px;
float: left;
margin-right: -20px;
margin-top: -35px;
}
.login_container {
padding: 0 2rem;
}
.shape7 {
position: relative;
height: 150px;
width: 150px;
background-color: #0074d9;
border-radius: 80px;
float: left;
margin-right: -20px;
margin-top: -57px;
}
.input-group-text {
background: darkgreen !important;
color: white !important;
border: 0 !important;
border-radius: 0.25rem 0 0 0.25rem !important;
}
.input_user,
.input_pass:focus {
box-shadow: none !important;
outline: 0px !important;
}
.custom-checkbox .custom-control-input:checked ~ .custom-control-label::before {
background-color: darkgreen !important;
}
.float {
position: absolute;
z-index: 2;
}
.form {
margin-left: 145px;
}
</style>
</head>
<!--Coded with love by Mutiullah Samim-->
<body>
<div class="container h-100">
<div class="d-flex justify-content-center h-100">
<div class="user_card">
<div class="d-flex justify-content-center">
<div class="brand_logo_container">
@*
<img src="https://cdn.freebiesupply.com/logos/large/2x/pinterest-circle-logo-png-transparent.png" class="brand_logo" alt="Logo">
*@
<img src="~/img/logo.png" class="brand_logo" alt="Logo">
</div>
</div>
<div class="d-flex justify-content-center form_container">
@*
<form>
<div class="input-group mb-3">
<div class="input-group-append">
<span class="input-group-text"><i class="fas fa-user"></i></span>
</div>
<input type="text" name="" class="form-control input_user" value="" placeholder="username">
</div>
<div class="input-group mb-2">
<div class="input-group-append">
<span class="input-group-text"><i class="fas fa-key"></i></span>
</div>
<input type="password" name="" class="form-control input_pass" value="" placeholder="password">
</div>
<div class="form-group">
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" id="customControlInline">
<label class="custom-control-label" for="customControlInline">Remember me</label>
</div>
</div>
<div class="d-flex justify-content-center mt-3 login_container">
<button type="button" name="button" class="btn login_btn">Login</button>
</div>
</form>
*@
@using (Html.BeginForm("ExternalLogin", "Login", new { provider = "Microsoft" }, FormMethod.Post, true, new { id = "externalLoginForm" }))
{
@Html.AntiForgeryToken()
<button type="submit" class="btn login_btn">Login with Microsoft</button>
}
</div>
<div class="mt-4">
<div class="d-flex justify-content-center links">
Don't have an account? <a href="#" class="ml-2">Sign Up</a>
</div>
<div class="d-flex justify-content-center links">
<a href="#">Forgot your password?</a>
}
<div id="login-row" class="row justify-content-center align-items-center">
<div id="login-column" class="col-md-6">
<div class="box">
<div class="shape1"></div>
<div class="shape2"></div>
<div class="shape3"></div>
<div class="shape4"></div>
<div class="shape5"></div>
<div class="shape6"></div>
<div class="shape7"></div>
<div class="float">
<br />
<br />
@using (Html.BeginForm("ExternalLogin", "Login", new { provider = "Microsoft" }, FormMethod.Post, true, new { id = "externalLoginForm", style = "margin-left: 150px" }))
{
@Html.AntiForgeryToken()
<button type="submit" class="btn btn-success btn-block login">Login with Microsoft</button>
}
<br />
@using (Html.BeginForm("ExternalLoginGoogle", "Login", new { provider = "Google" }, FormMethod.Post, true, new { id = "externalLoginForm", style = "margin-left: 150px" }))
{
@Html.AntiForgeryToken()
<button type="submit" class="btn btn-success btn-block login">Login with Google</button>
}
</div>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,45 @@
@*
For more information on enabling MVC for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860
*@
@{
}
@section Scripts {
<script src="https://js.stripe.com/v3/"></script>
<script>
// This is your test secret API key.
const stripe = Stripe("pk_test_51PvIzkBk8jHwC3c0efDBJMY9dBwNqs0SDAHP0vIQr17G9iYg4GQtIrCOh2N9teJoYDXUHTWe6iEHnUylMntwhbin00R7y6lQOV");
initialize();
// Create a Checkout Session
async function initialize() {
const payPlan = get('plan');
const fetchClientSecret = async () => {
const response = await fetch("/Pay/create" + payPlan, {
method: "POST",
});
const { clientSecret } = await response.json();
return clientSecret;
};
const checkout = await stripe.initEmbeddedCheckout({
fetchClientSecret,
});
// Mount Checkout
checkout.mount('#checkout');
}
function get(name) {
if (name = (new RegExp('[?&]' + encodeURIComponent(name) + '=([^&]*)')).exec(location.search))
return decodeURIComponent(name[1]);
}
</script>
}
<br />
<br />
<div id="checkout">
<!-- Checkout will insert the payment form here -->
</div>

View File

@ -0,0 +1,102 @@
@{
ViewBag.Title = "Planos";
}
<div class="row db-padding-btm db-attached">
<div class="col-4 col-xs-4 col-sm-4 col-md-4 col-lg-4">
<div class="db-wrapper">
<div class="db-pricing-eleven db-bk-color-one">
<div class="price text-price-responsive">
<sup>R$</sup> 0,00
<small>para sempre!</small>
</div>
<div class="type text-type-responsive">
Básico
</div>
<ul class="text-responsive">
<li><i class="bi bi-plus-square-fill text-success"></i>1 Bio/Links <span class="hide-in-cell">pessoal virtual</span></li>
<li><i class="bi bi-plus-square-fill text-success"></i><span class="hide-in-cell">Exibir imagem </span>Whatsapp *</li>
<li><i class="bi bi-plus-square-fill text-success"></i>Até 3 links </li>
<li><i class="bi bi-square text-success"></i><span class="hide-in-cell">Sem página de</span> Produtos</li>
<li><i class="bi bi-square text-success"></i><span class="hide-in-cell">Sem contador de </span>Visualizações</span></li>
</ul>
<div class="pricing-footer">
<div class="btn db-button-color-square btn-lg">Plano Atual</div>
</div>
</div>
</div>
</div>
<div class="col-4 col-xs-4 col-sm-4 col-md-4 col-lg-4">
<div class="db-wrapper">
<div class="db-pricing-eleven db-bk-color-two popular">
<div class="price text-price-responsive">
<sup>R$</sup>13
<small>por mês</small>
</div>
<div class="type text-type-responsive">
BIO
</div>
<ul>
<li><i class="bi bi-plus-square-fill text-success"></i>1 Bio/Links <span class="hide-in-cell">pessoal virtual</span></li>
<li><i class="bi bi-plus-square-fill text-success"></i><span class="hide-in-cell">Exibir cartão </span>Whatsapp *</li>
<li><i class="bi bi-plus-square-fill text-success"></i>100 links</li>
<li><i class="bi bi-square text-success"></i><span class="hide-in-cell">Sem página de</span> Produtos</li>
@*
<li><i class="bi bi-plus-square-fill text-success"></i>1 Link agendado **</li>
*@
<li><i class="bi bi-square text-success"></i><span class="hide-in-cell">Contador de</span> Visualizações</li>
@*
<li><i class="bi bi-square text-success"></i><span class="hide-in-cell">Registro de contatos</span> </li>
*@
</ul>
<div class="pricing-footer">
@if (User.Identity.IsAuthenticated)
{
<a href="/Pay/?plan=bio" class="btn db-button-color-square btn-lg">Assinar</a>
}
else
{
<a href="/Login" class="btn db-button-color-square btn-lg">Login / Registro</a>
}
</div>
</div>
</div>
</div>
<div class="col-4 col-xs-4 col-sm-4 col-md-4 col-lg-4">
<div class="db-wrapper">
<div class="db-pricing-eleven db-bk-color-three">
<div class="price text-price-responsive">
<sup>R$</sup>27
<small>por mês</small>
</div>
<div class="type text-type-responsive">
CATÁLOGO
</div>
<ul>
<li><i class="bi bi-plus-square-fill text-success"></i>1 Bio/Cartão <span class="hide-in-cell">pessoal virtual</span></li>
<li><i class="bi bi-plus-square-fill text-success"></i><span class="hide-in-cell">Exibir cartão </span>Whatsapp *</li>
<li><i class="bi bi-plus-square-fill text-success"></i>Sem limite de links </li>
<li><i class="bi bi-plus-square-fill text-success"></i>Links de Produtos</li>
<li><i class="bi bi-plus-square-fill text-success"></i>Contador<span class="hide-in-cell"> de visualizações</span> </li>
@*
<li><i class="bi bi-plus-square-fill text-success"></i><span class="hide-in-cell">Registro de contatos</span> </li>
*@
</ul>
<div class="pricing-footer">
@if (User.Identity.IsAuthenticated)
{
<button type="button" class="btn db-button-color-square btn-lg" onclick="waitingDialog.show('Custom message');window.location.href = '/Pay/?plan=catalogo';">Assinar</button>
@*
<a href="/Pay/?plan=catalogo" class="btn db-button-color-square btn-lg">Assinar</a>
*@
}
else
{
<a href="/Login" class="btn db-button-color-square btn-lg">Login / Registro</a>
}
</div>
</div>
</div>
</div>
</div>

View File

@ -0,0 +1,225 @@
/*=============================================================
Authour URL: www.designbootstrap.com
http://www.designbootstrap.com/
License: MIT
======================================================== */
/*============================================================
BACKGROUND COLORS
============================================================*/
.db-bk-color-one {
background-color: #A9B595;
}
.db-bk-color-two {
background-color: #B9CEA0;
}
.db-bk-color-three {
background-color: #97A47E;
}
.db-bk-color-six {
background-color: #F59B24;
}
.db-padding-btm {
padding-bottom: 50px;
}
.db-button-color-square {
color: #fff;
background-color: rgba(0, 0, 0, 0.50);
border: none;
border-radius: 0px;
-webkit-border-radius: 0px;
-moz-border-radius: 0px;
}
.db-button-color-square:hover {
color: #fff;
background-color: rgba(0, 0, 0, 0.50);
border: none;
}
.db-pricing-eleven {
margin-bottom: 30px;
margin-top: 50px;
text-align: center;
box-shadow: 0 0 5px rgba(0, 0, 0, .5);
border-radius: 7px 7px 7px 7px;
color: #101211;
line-height: 30px;
}
.db-pricing-eleven ul {
list-style: none;
margin: 0;
text-align: left;
padding-left: 5px;
}
.db-pricing-eleven ul li {
padding-top: 20px;
padding-bottom: 20px;
cursor: pointer;
}
.db-pricing-eleven ul li i {
margin-right: 5px;
}
.db-pricing-eleven .price {
background-color: rgba(0, 0, 0, 0);
color: #FFFFFF;
}
.db-pricing-eleven .price small {
color: #63783F;
display: block;
font-size: 12px;
margin-top: 22px;
}
.db-pricing-eleven .type {
background-color: #63783F;
padding: 50px 20px;
font-weight: 900;
text-transform: uppercase;
}
.text-price-responsive {
font-size: 30px;
padding: 20px 10px 10px 10px;
font-weight: 500;
}
.text-type-responsive {
color: white;
font-size: 20px;
}
.text-responsive {
font-size: 16px;
}
.hide-in-cell {
display: none
}
@media (min-width: 544px) {
.db-pricing-eleven ul {
list-style: none;
margin: 0;
text-align: left;
padding-left: 5px;
}
.text-price-responsive {
font-size: 30px;
padding: 20px 10px 10px 10px;
font-weight: 500;
}
.text-type-responsive {
font-size: 30px;
color: white;
}
.text-responsive {
font-size: 16px;
}
.hide-in-cell {
display: none
}
}
/* Medium devices (tablets, 768px and up) */
@media (min-width: 768px) {
.text-price-responsive {
padding: 40px 20px 20px 20px;
font-size: 40px;
}
.text-type-responsive {
font-size: 30px;
color: white;
}
.text-responsive {
font-size: 20px;
}
}
/* Large devices (desktops, 992px and up) */
@media (min-width: 992px) {
.text-price-responsive {
padding: 40px 20px 20px 20px;
font-size: 60px;
}
.text-type-responsive {
font-size: 30px;
color: white;
}
.text-responsive {
font-size: 20px;
}
}
/* Extra large devices (large desktops, 1200px and up) */
@media (min-width: 1200px) {
.db-pricing-eleven ul {
list-style: none;
margin: 0;
text-align: left;
padding-left: 20px;
}
.text-price-responsive {
padding: 40px 20px 20px 20px;
font-size: 60px;
}
.text-type-responsive {
color: white;
font-size: 30px;
}
.text-responsive {
font-size: 16px;
}
.hide-in-cell {
display: inline
}
}
.db-pricing-eleven .pricing-footer {
padding: 20px;
}
.db-attached > .col-lg-4,
.db-attached > .col-lg-3,
.db-attached > .col-md-4,
.db-attached > .col-md-3,
.db-attached > .col-sm-4,
.db-attached > .col-sm-3 {
padding-left: 0;
padding-right: 0;
}
.db-pricing-eleven.popular {
margin-top: 10px;
}
.db-pricing-eleven.popular .price {
padding-top: 80px;
}

View File

@ -0,0 +1,10 @@
@model ChangeViewModel
@{
ViewBag.Title = "OrederStatus";
}
<h2>Order Status</h2>
<p>@ViewBag.Status</p>
<h4>Email</h4>
<p>@ViewBag.Email</p>

View File

@ -0,0 +1,77 @@
@*
For more information on enabling MVC for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860
*@
@{
}
@section Scripts {
<script src="https://js.stripe.com/v3/"></script>
<script>
var stripe = Stripe('Your Secret key');
var elements = stripe.elements();
var style = {
base: {
fontSize: '16px',
color: '#32325d',
},
};
var card = elements.create('card', { style: style });
card.mount('#card-element');
var form = document.getElementById('payment-form');
form.addEventListener('submit', function (event) {
event.preventDefault();
stripe.createToken(card).then(function (result) {
if (result.error) {
var errorElement = document.getElementById('card-errors');
errorElement.textContent = result.error.message;
} else {
stripeTokenHandler(result.token);
}
});
});
function stripeTokenHandler(token) {
var form = document.getElementById('payment-form');
var hiddenInput = document.createElement('input');
hiddenInput.setAttribute('type', 'hidden');
hiddenInput.setAttribute('name', 'stripeToken');
hiddenInput.setAttribute('value', token.id);
form.appendChild(hiddenInput);
form.submit();
}
</script>
}
<form action="/cart/Create" method="post" id="payment-form">
<div class="col-sm-6">
<div class="panel panel-success">
<div class="panel-heading">
Credit Card Information
</div>
<div class="panel-body">
<div class="form-horizontal">
<div class="form-group">
<div class="col-sm-8">
<input type="number" class="form-control" name="Amount" placeholder="Amount" required />
</div>
</div>
<div class="form-group">
<div class="col-sm-8">
<input type="text" class="form-control" name="Currency" value="INR" readonly />
</div>
</div>
<div class="form-group">
<div class="col-sm-8">
<input type="text" class="form-control" name="Description" placeholder="Description" required />
</div>
</div>
<div id="card-element">
</div>
<div id="card-errors" role="alert"></div>
</div>
<br />
<input type="submit" value="Submit Payment" />
</div>
</div>
</div>
</form>

View File

@ -0,0 +1,44 @@
@*
For more information on enabling MVC for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860
*@
@{
}
@section Scripts {
<script src="https://js.stripe.com/v3/"></script>
<script>
// This is your test secret API key.
const stripe = Stripe("pk_test_51PvIzkBk8jHwC3c0efDBJMY9dBwNqs0SDAHP0vIQr17G9iYg4GQtIrCOh2N9teJoYDXUHTWe6iEHnUylMntwhbin00R7y6lQOV");
initialize();
// Create a Checkout Session
async function initialize() {
const payPlan = get('plan');
const fetchClientSecret = async () => {
const response = await fetch("/Pay" + payPlan, {
method: "POST",
});
const { clientSecret } = await response.json();
return clientSecret;
};
const checkout = await stripe.initEmbeddedCheckout({
fetchClientSecret,
});
// Mount Checkout
checkout.mount('#checkout');
}
function get(name) {
if (name = (new RegExp('[?&]' + encodeURIComponent(name) + '=([^&]*)')).exec(location.search))
return decodeURIComponent(name[1]);
}
</script>
}
<div id="checkout">
<!-- Checkout will insert the payment form here -->
</div>

View File

@ -0,0 +1,13 @@
@*
For more information on enabling MVC for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860
*@
@{
}
<div class="loading">
<div class="d-flex justify-content-center">
<div class="spinner-border text-success" role="status">
<span class="sr-only">Loading...</span>
</div>
</div>
</div>

View File

@ -0,0 +1,15 @@
@*
For more information on enabling MVC for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860
*@
@{
}
<li class="nav-item dropdown" style="display: none">
<a class="nav-link text-white dropdown-toggle" href="#" id="languageDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<i class="bi bi-book"></i>&nbsp;&nbsp;Idioma - @Context.Request.Cookies["Language"]
</a>
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="languageDropdown">
<a class="dropdown-item" asp-controller="Language" asp-action="ChangeLanguage" asp-route-lang="en">English</a>
<a class="dropdown-item" asp-controller="Language" asp-action="ChangeLanguage" asp-route-lang="pt-BR">Português</a>
</div>
</li>

View File

@ -1,94 +1,102 @@
@using System.Security.Claims
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>@ViewData["Title"] - VCart</title>
<title>@ViewData["Title"] - Blinks</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css" integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous">
<link rel="stylesheet" href="~/css/site.css" asp-append-version="true" />
<link rel="stylesheet" href="~/VCart.styles.css" asp-append-version="true" />
@await RenderSectionAsync("Style", required: false)
<link rel="stylesheet" href="~/Blinks.styles.css" asp-append-version="true" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css">
@await RenderSectionAsync("Styles", required: false)
</head>
<body>
<body class="hide-body">
<partial name="_Busy" />
<div id="wrapper">
<header>
<nav id="nav-bar" class="navbar navbar-expand-sm navbar-toggleable-sm navbar-dark">
<div class="container-fluid">
<a class="navbar-brand" asp-area="" asp-controller="Home" asp-action="Index">VCart</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target=".navbar-collapse" aria-controls="navbarSupportedContent"
aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="navbar-collapse collapse d-sm-inline-flex justify-content-between">
<ul class="navbar-nav flex-grow-1">
<li class="nav-item">
<a class="nav-link text-white" asp-area="" asp-controller="Home" asp-action="Index">Home</a>
</li>
<li class="nav-item">
<a class="nav-link text-white" asp-area="" asp-controller="Home" asp-action="Privacy">Privacy</a>
</li>
</ul>
</div>
@if (!User.Identity.IsAuthenticated)
{
<div class="navbar-collapse collapse">
<ul class="navbar-nav ml-auto">
<li class="nav-item" style="margin-right: 10px">
<a class="nav-link text-white" asp-area="" asp-controller="Login" asp-action="Index">Login</a>
</li>
</ul>
</div>
}
else
{
<div class="navbar-collapse collapse">
<ul class="navbar-nav ml-auto">
<li class="nav-item dropdown" style="margin-right: 10px">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
@User.FindFirst("FullName").Value
</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
<a class="dropdown-item" asp-area="" asp-controller="Login" asp-action="Logout">Sair</a>
@* <a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="#">Something else here</a>
*@
</div>
</li>
<nav id="nav-bar" class="navbar navbar-expand-lg navbar-dark">
<a class="navbar-brand" asp-area="" asp-controller="Home" asp-action="Index">Blinks</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="navbar-collapse collapse" id="navbarNav">
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link text-white" asp-area="" asp-controller="Home" asp-action="Index">Home</a>
</li>
<li class="nav-item">
<a class="nav-link text-white" asp-area="" asp-controller="Home" asp-action="Privacy">Privacy</a>
</li>
<li class="nav-item">
<a class="nav-link text-white" asp-area="" asp-controller="Plans" asp-action="Index">Planos</a>
</li>
</ul>
@if (User!=null && User.Identity!=null && !User.Identity.IsAuthenticated)
{
<ul class="navbar-nav ml-auto">
<partial name="_Language" />
<li class="nav-item" style="margin-right: 10px">
<a class="nav-link text-white" asp-area="" asp-controller="Login" asp-action="Index"><i class="bi bi-person"></i> Login</a>
</li>
</ul>
}
else
{
<ul class="navbar-nav ml-auto">
<partial name="_Language"/>
<li class="nav-item dropdown" style="margin-right: 10px">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<i class="bi bi-person"></i> @(User.FindFirst("FullName")!=null ? User.FindFirst("FullName").Value : "N/A")
</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
<a class="dropdown-item" asp-area="" asp-controller="Login" asp-action="Logout">Sair</a>
@*
<li class="nav-item">
<a class="nav-link text-white" asp-area="" asp-controller="Login" asp-action="Logout">@User.FindFirst("FullName").Value
</a>
</li>
*@
</ul>
</div>
}
</div>
</nav>
</header>
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="#">Something else here</a>
*@
</div>
</li>
@*
<li class="nav-item">
<a class="nav-link text-white" asp-area="" asp-controller="Login" asp-action="Logout">@User.FindFirst("FullName").Value
</a>
</li>
*@
</ul>
}
</div>
</nav>
<div class="container">
@RenderBody()
@* <main role="main" class="pb-3">
@*
<main role="main" class="pb-3">
</main>
*@
</div>
<footer class="border-top footer text-muted">
<div class="container">
&copy; 2024 - VCart - <a asp-area="" asp-controller="Home" asp-action="Privacy">Privacy</a>
&copy; 2024 - Blinks - <a asp-area="" asp-controller="Home" asp-action="Privacy">Privacy</a>
</div>
</footer>
</div>
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-Fy6S3B9q64WdZWQUiU+q4/2Lc9npb8tCaSX9FK7E8HnRr0Jz8D6OP9dO5Vg3Q9ct" crossorigin="anonymous"></script>
<script src="~/js/site.js" asp-append-version="true"></script>
<script type="text/javascript" >
<script src="~/js/wait.js" asp-append-version="true"></script>
<script type="text/javascript">
$(function () {
$(document).ready(function () {
$('.loading').hide();
//$('body').fadeIn(1000);
$('body').slideDown('slow');
});
$('a[href="#search"]').on('click', function (event) {
event.preventDefault();
$('#search').addClass('open');
@ -105,17 +113,19 @@
}
});
//Do not include! This prevents the form from submitting for DEMO purposes only!
$('form').submit(function (event) {
event.preventDefault();
return false;
})
$(window).on('beforeunload', function () {
displayBusyIndicator();
});
$(document).on('submit', 'form', function () {
displayBusyIndicator();
});
$(document).ready(function () {
$('#wrapper').fadeIn('slow');
//$('#wrapper').fadeIn('slow');
$('a.nav-link').click(function () {
$('#wrapper').fadeOut('slow');
//$('#wrapper').fadeOut('slow');
});
setActiveByLocation();
});
@ -130,20 +140,20 @@
$('ul.navbar-nav').find('a[href="' + location.pathname + '"]')
.closest('a')
.removeClass('text-white')
.addClass('text-red');
.addClass('text-black');
}
function searchActive() {
$('#searchLi').addClass("active");
$('#searchLi > a')
.removeClass('text-white')
.addClass('text-red');
.addClass('text-black');
}
function searchInactive() {
$('#searchLi').removeClass("active");
$('#searchLi > a')
.removeClass('text-red')
.removeClass('text-black')
.addClass('text-white');
}
@ -154,9 +164,16 @@
$('ul.navbar-nav').find('a[href="' + location.pathname + '"]')
.closest('a')
.removeClass('text-red')
.removeClass('text-black')
.addClass('text-white');
}
function displayBusyIndicator() {
//$('body').fadeOut(1000);
$('body').slideUp('slow');
}
//$(".hide-body").fadeOut(2000);
});
</script>
@await RenderSectionAsync("Scripts", required: false)

View File

@ -13,12 +13,16 @@ a {
.btn-primary {
color: #fff;
background-color: #1b6ec2;
background-color: #63783F;
border-color: #1861ac;
}
.nav-pills .nav-link.active, .nav-pills .show > .nav-link {
/*
color: #fff;
*/
color: black !important;
background-color: #1b6ec2;
border-color: #1861ac;
}
@ -116,7 +120,7 @@ button.accept-policy {
}
.btn-primary {
background-color: #00ff21;
background-color: #63783F;
}
.navbar-inner {
@ -156,22 +160,36 @@ button.accept-policy {
}
}
.navbar .navbar-collapse ul.navbar-nav .nav-item.active {
color: white;
background-color: #00ff21 !important;
.navbar .navbar-collapse ul.navbar-nav .nav-item {
padding-left: 3px;
padding-right: 3px;
}
a.nav-link.text-white {
background-color: green;
.navbar .navbar-collapse ul.navbar-nav .nav-item.active {
color: white;
padding-left: 3px;
padding-right: 3px;
background-color: #C7CCB8 !important;
border-radius: 7px 7px 7px 7px;
/*
background-color: #b8f2a1 !important;
*/
}
a.nav-link.text-black {
color: black !important;
}
nav.link .active {
background-color: red;
color: darkgreen;
color: black !important;
}
#nav-bar {
background-color: darkgreen;
background-color: #63783F
/* background-color: #darkgreen;
*/
}
#searchLi > a {
@ -183,6 +201,10 @@ nav.link .active {
color: darkred;
}
.text-black {
color: black !important;
}
.btn.green {
background-color: darkgreen;
color: white;
@ -191,3 +213,137 @@ nav.link .active {
btn.primary {
background: darkgreen;
}
/* Absolute Center Spinner */
.loading {
position: fixed;
display: none;
z-index: 1031;
height: 2em;
width: 2em;
overflow: show;
margin: auto;
top: 0;
left: 0;
bottom: 0;
right: 0;
}
/* Transparent Overlay */
.loading:before {
content: '';
display: block;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0,0,0,0.3);
}
/* :not(:required) hides these rules from IE9 and below */
.loading:not(:required) {
font: 0/0 a;
color: transparent;
text-shadow: none;
background-color: transparent;
border: 0;
}
.loading:not(:required):after {
content: '';
display: block;
font-size: 10px;
width: 1em;
height: 1em;
margin-top: -0.5em;
-webkit-animation: spinner 1500ms infinite linear;
-moz-animation: spinner 1500ms infinite linear;
-ms-animation: spinner 1500ms infinite linear;
-o-animation: spinner 1500ms infinite linear;
animation: spinner 1500ms infinite linear;
border-radius: 0.5em;
-webkit-box-shadow: rgba(0, 0, 0, 0.75) 1.5em 0 0 0, rgba(0, 0, 0, 0.75) 1.1em 1.1em 0 0, rgba(0, 0, 0, 0.75) 0 1.5em 0 0, rgba(0, 0, 0, 0.75) -1.1em 1.1em 0 0, rgba(0, 0, 0, 0.5) -1.5em 0 0 0, rgba(0, 0, 0, 0.5) -1.1em -1.1em 0 0, rgba(0, 0, 0, 0.75) 0 -1.5em 0 0, rgba(0, 0, 0, 0.75) 1.1em -1.1em 0 0;
box-shadow: rgba(0, 0, 0, 0.75) 1.5em 0 0 0, rgba(0, 0, 0, 0.75) 1.1em 1.1em 0 0, rgba(0, 0, 0, 0.75) 0 1.5em 0 0, rgba(0, 0, 0, 0.75) -1.1em 1.1em 0 0, rgba(0, 0, 0, 0.75) -1.5em 0 0 0, rgba(0, 0, 0, 0.75) -1.1em -1.1em 0 0, rgba(0, 0, 0, 0.75) 0 -1.5em 0 0, rgba(0, 0, 0, 0.75) 1.1em -1.1em 0 0;
}
/* Animation */
@-webkit-keyframes spinner {
0% {
-webkit-transform: rotate(0deg);
-moz-transform: rotate(0deg);
-ms-transform: rotate(0deg);
-o-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(360deg);
-moz-transform: rotate(360deg);
-ms-transform: rotate(360deg);
-o-transform: rotate(360deg);
transform: rotate(360deg);
}
}
@-moz-keyframes spinner {
0% {
-webkit-transform: rotate(0deg);
-moz-transform: rotate(0deg);
-ms-transform: rotate(0deg);
-o-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(360deg);
-moz-transform: rotate(360deg);
-ms-transform: rotate(360deg);
-o-transform: rotate(360deg);
transform: rotate(360deg);
}
}
@-o-keyframes spinner {
0% {
-webkit-transform: rotate(0deg);
-moz-transform: rotate(0deg);
-ms-transform: rotate(0deg);
-o-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(360deg);
-moz-transform: rotate(360deg);
-ms-transform: rotate(360deg);
-o-transform: rotate(360deg);
transform: rotate(360deg);
}
}
@keyframes spinner {
0% {
-webkit-transform: rotate(0deg);
-moz-transform: rotate(0deg);
-ms-transform: rotate(0deg);
-o-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(360deg);
-moz-transform: rotate(360deg);
-ms-transform: rotate(360deg);
-o-transform: rotate(360deg);
transform: rotate(360deg);
}
}
.bg-grayed {
background-color: #D8D8D8
}
.hide-body {
display: none;
}

View File

@ -11,7 +11,7 @@
<html>
<head>
<title>VCart</title>
<title>Blinks</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.6.1/css/all.css" integrity="sha384-gfdkjb5BdAXd+lj+gudLWI+BXq4IuLW5IT+brZEZsLFm++aCMlF1V92rMkPaX4PP" crossorigin="anonymous">

View File

@ -0,0 +1,181 @@
@using Blinks
@*
For more information on enabling MVC for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860
*@
@{
ViewData["Title"] = "Form Example";
}
@section Styles {
<style type="text/css">
.bg-grayed {
background-color: #D8D8D8
}
.disabled {
pointer-events: none;
}
</style>
}
<div class="container mt-5">
<h2>@Resource.InitialFormTitle</h2>
<br />
<br />
<form id="exampleForm">
<div class="row">
<div class="col-6">
<div class="form-group">
<label for="email">@Resource.NameLabel</label>
<input type="name" class="form-control bg-grayed" id="name" disabled value="@User.FindFirst("FullName").Value" style="background-color: #D8D8D8">
</div>
</div>
<div class="col-6">
<div class="form-group">
<label for="email">@Resource.EmailLabel</label>
<input type="email" class="form-control bg-grayed" id="email" disabled value="@User.Identity.Name" style="background-color: #D8D8D8">
</div>
</div>
</div>
<div class="row">
<div class="col-12">
<div class="card mt-3 tab-card">
<div class="card-header tab-card-header">
<ul class="nav nav-tabs card-header-tabs" id="myTab" role="tablist">
<li class="nav-item">
<a class="nav-link" id="one-tab" data-toggle="tab" href="#one" role="tab" aria-controls="One" aria-selected="true">Dados</a>
</li>
<li class="nav-item">
<a class="nav-link" id="two-tab" data-toggle="tab" href="#two" role="tab" aria-controls="Two" aria-selected="false">Links</a>
</li>
<li class="nav-item">
<a class="nav-link" id="three-tab" data-toggle="tab" href="#three" role="tab" aria-controls="Three" aria-selected="false">Tema</a>
</li>
</ul>
</div>
<div class="tab-content" id="myTabContent">
<div class="tab-pane fade show active p-3" id="one" role="tabpanel" aria-labelledby="one-tab">
<div class="tab-content-inner" style="height: 320px;">
<h5 class="card-title">Dados iniciais</h5>
<div class="form-group">
<label for="country">@Resource.CountryLabel</label>
<select class="form-control" id="country" placeholder="@Resource.CountryPlaceholder" required>
@if (Context.Request.Cookies["Language"] == "en")
{
<option value="1">@Resource.Country_EUA_Label</option>
<option value="2">@Resource.Country_India_Label</option>
<option value="3">@Resource.Country_Nigeria_Label</option>
<option value="4">@Resource.Country_Paquistao_Label</option>
<option value="5">@Resource.Country_UK_Label</option>
<option value="6">@Resource.Country_Filipinas_Label</option>
<option value="7">@Resource.Country_Canada_Label</option>
<option value="8">@Resource.Country_Australia_Label</option>
<option value="9">@Resource.Country_Gana_Label</option>
<option value="10">@Resource.Country_Quenia_Label</option>
}
else if (Context.Request.Cookies["Language"] == "pt-BR")
{
<option value="11">@Resource.Country_Brasil_Label</option>
<option value="12">@Resource.Country_Mocambique_Label</option>
<option value="13">@Resource.Country_Angola_Label</option>
<option value="14">@Resource.Country_Portugal_Label</option>
<option value="15">@Resource.Country_GuineBissau_Label</option>
<option value="16">@Resource.Country_TimorLeste_Label</option>
<option value="17">@Resource.Country_CaboVerde_Label</option>
}
</select>
<small id="countryHelp" class="form-text text-muted">@Resource.ChangeLanguage</small>
</div>
<div class="form-group">
<label for="businessArea">@Resource.BusinessAreaLabel</label>
<select class="form-control" id="country" placeholder="@Resource.CountryPlaceholder" required>
<option value="1">@Resource.BU_Alimentacao</option>
<option value="2">@Resource.BU_Vestuário</option>
<option value="3">@Resource.BU_Construção</option>
<option value="4">@Resource.BU_Saúde</option>
<option value="5">@Resource.BU_TI</option>
<option value="6">@Resource.BU_Beleza</option>
<option value="7">@Resource.BU_Empreendedorismo</option>
<option value="8">@Resource.BU_SetorPET</option>
<option value="9">@Resource.BU_Educacao</option>
<option value="10">@Resource.BU_TransporteLogistica</option>
</select>
</div>
<div class="form-group">
<label for="groupName">@Resource.GroupNameLabel</label>
<input type="text" class="form-control" id="groupName" placeholder="@Resource.GroupPlaceHolder" required>
</div>
</div>
<button type="button" class="btn btn-primary" id="next1Button">Próximo >></button>
</div>
<div class="tab-pane fade p-3" id="two" role="tabpanel" aria-labelledby="two-tab">
<div class="tab-content-inner" style="height: 320px;">
<h5 class="card-title">Tab Card Two</h5>
<p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
</div>
<button type="button" class="btn btn-primary" id="next2Button">Próximo >></button>
</div>
<div class="tab-pane fade p-3 " id="three" role="tabpanel" aria-labelledby="three-tab">
<div class="tab-content-inner" style="height: 320px;">
<h5 class="card-title">Tab Card Three</h5>
<p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
</div>
<button type="submit" class="btn btn-primary" id="saveButton" disabled>@Resource.SaveButton</button>
</div>
</div>
</div>
</div>
</div>
</form>
</div>
@section Scripts {
<script type="text/javascript" >
const nextTab1 = $('#one-tab');
const nextTab2 = $('#two-tab');
const nextTab3 = $('#three-tab');
nextTab2.addClass('disabled');
nextTab3.addClass('disabled');
$(document).ready(function () {
$('#groupName, #businessArea').on('input', function() {
var groupName = $('#groupName').val();
var businessArea = $('#businessArea').val();
if (groupName && businessArea) {
$.ajax({
url: '/validateGroup',
type: 'POST',
data: { groupName: groupName, businessArea: businessArea },
success: function(response) {
if (response.isValid) {
$('#saveButton').prop('disabled', false);
} else {
$('#saveButton').prop('disabled', true);
}
}
});
} else {
$('#saveButton').prop('disabled', true);
}
});
$('#next1Button').on('click', function () {
nextTab2.removeClass('disabled');
nextTab2.tab('show');;
});
$('#next2Button').on('click', function () {
nextTab3.removeClass('disabled');
nextTab3.tab('show');;
});
nextTab3.addEventListener('click', function () {
// Aqui você pode adicionar a lógica para permitir que o usuário volte para as abas anteriores
});
});
</script>
}

View File

@ -1,3 +1,3 @@
@using VCart
@using VCart.Models
@using Blinks
@using Blinks.Models
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers

View File

@ -7,5 +7,9 @@
},
"AllowedHosts": "*",
"AppSecret": "GP28Q~ILuE0furAa~3zHUA-jm6EyiWCaLIkoKaQj",
"ClientID": "e913ea69-be61-4eab-b0f5-24762d15bdb5"
"ClientID": "e913ea69-be61-4eab-b0f5-24762d15bdb5",
"Stripe": {
"SecretKey": "sua_secret_key_aqui",
"PublishableKey": "sua_publishable_key_aqui"
}
}

View File

@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-0-circle-fill" viewBox="0 0 16 16">
<path d="M8 4.951c-1.008 0-1.629 1.09-1.629 2.895v.31c0 1.81.627 2.895 1.629 2.895s1.623-1.09 1.623-2.895v-.31c0-1.8-.621-2.895-1.623-2.895"/>
<path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0m-8.012 4.158c1.858 0 2.96-1.582 2.96-3.99V7.84c0-2.426-1.079-3.996-2.936-3.996-1.864 0-2.965 1.588-2.965 3.996v.328c0 2.42 1.09 3.99 2.941 3.99"/>
</svg>

After

Width:  |  Height:  |  Size: 476 B

View File

@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-0-circle" viewBox="0 0 16 16">
<path d="M7.988 12.158c-1.851 0-2.941-1.57-2.941-3.99V7.84c0-2.408 1.101-3.996 2.965-3.996 1.857 0 2.935 1.57 2.935 3.996v.328c0 2.408-1.101 3.99-2.959 3.99M8 4.951c-1.008 0-1.629 1.09-1.629 2.895v.31c0 1.81.627 2.895 1.629 2.895s1.623-1.09 1.623-2.895v-.31c0-1.8-.621-2.895-1.623-2.895"/>
<path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0M1 8a7 7 0 1 0 14 0A7 7 0 0 0 1 8"/>
</svg>

After

Width:  |  Height:  |  Size: 507 B

View File

@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-0-square-fill" viewBox="0 0 16 16">
<path d="M8 4.951c-1.008 0-1.629 1.09-1.629 2.895v.31c0 1.81.627 2.895 1.629 2.895s1.623-1.09 1.623-2.895v-.31c0-1.8-.621-2.895-1.623-2.895"/>
<path d="M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2zm5.988 12.158c-1.851 0-2.941-1.57-2.941-3.99V7.84c0-2.408 1.101-3.996 2.965-3.996 1.857 0 2.935 1.57 2.935 3.996v.328c0 2.408-1.101 3.99-2.959 3.99"/>
</svg>

After

Width:  |  Height:  |  Size: 514 B

View File

@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-0-square" viewBox="0 0 16 16">
<path d="M7.988 12.158c-1.851 0-2.941-1.57-2.941-3.99V7.84c0-2.408 1.101-3.996 2.965-3.996 1.857 0 2.935 1.57 2.935 3.996v.328c0 2.408-1.101 3.99-2.959 3.99M8 4.951c-1.008 0-1.629 1.09-1.629 2.895v.31c0 1.81.627 2.895 1.629 2.895s1.623-1.09 1.623-2.895v-.31c0-1.8-.621-2.895-1.623-2.895"/>
<path d="M0 2a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2zm15 0a1 1 0 0 0-1-1H2a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1z"/>
</svg>

After

Width:  |  Height:  |  Size: 579 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-1-circle-fill" viewBox="0 0 16 16">
<path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0M9.283 4.002H7.971L6.072 5.385v1.271l1.834-1.318h.065V12h1.312z"/>
</svg>

After

Width:  |  Height:  |  Size: 250 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-1-circle" viewBox="0 0 16 16">
<path d="M1 8a7 7 0 1 0 14 0A7 7 0 0 0 1 8m15 0A8 8 0 1 1 0 8a8 8 0 0 1 16 0M9.283 4.002V12H7.971V5.338h-.065L6.072 6.656V5.385l1.899-1.383z"/>
</svg>

After

Width:  |  Height:  |  Size: 279 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-1-square-fill" viewBox="0 0 16 16">
<path d="M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2zm7.283 4.002V12H7.971V5.338h-.065L6.072 6.656V5.385l1.899-1.383z"/>
</svg>

After

Width:  |  Height:  |  Size: 286 B

View File

@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-1-square" viewBox="0 0 16 16">
<path d="M9.283 4.002V12H7.971V5.338h-.065L6.072 6.656V5.385l1.899-1.383z"/>
<path d="M0 2a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2zm15 0a1 1 0 0 0-1-1H2a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1z"/>
</svg>

After

Width:  |  Height:  |  Size: 366 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-123" viewBox="0 0 16 16">
<path d="M2.873 11.297V4.142H1.699L0 5.379v1.137l1.64-1.18h.06v5.961zm3.213-5.09v-.063c0-.618.44-1.169 1.196-1.169.676 0 1.174.44 1.174 1.106 0 .624-.42 1.101-.807 1.526L4.99 10.553v.744h4.78v-.99H6.643v-.069L8.41 8.252c.65-.724 1.237-1.332 1.237-2.27C9.646 4.849 8.723 4 7.308 4c-1.573 0-2.36 1.064-2.36 2.15v.057zm6.559 1.883h.786c.823 0 1.374.481 1.379 1.179.01.707-.55 1.216-1.421 1.21-.77-.005-1.326-.419-1.379-.953h-1.095c.042 1.053.938 1.918 2.464 1.918 1.478 0 2.642-.839 2.62-2.144-.02-1.143-.922-1.651-1.551-1.714v-.063c.535-.09 1.347-.66 1.326-1.678-.026-1.053-.933-1.855-2.359-1.845-1.5.005-2.317.88-2.348 1.898h1.116c.032-.498.498-.944 1.206-.944.703 0 1.206.435 1.206 1.07.005.64-.504 1.106-1.2 1.106h-.75z"/>
</svg>

After

Width:  |  Height:  |  Size: 854 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-2-circle-fill" viewBox="0 0 16 16">
<path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0M6.646 6.24c0-.691.493-1.306 1.336-1.306.756 0 1.313.492 1.313 1.236 0 .697-.469 1.23-.902 1.705l-2.971 3.293V12h5.344v-1.107H7.268v-.077l1.974-2.22.096-.107c.688-.763 1.287-1.428 1.287-2.43 0-1.266-1.031-2.215-2.613-2.215-1.758 0-2.637 1.19-2.637 2.402v.065h1.271v-.07Z"/>
</svg>

After

Width:  |  Height:  |  Size: 457 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-2-circle" viewBox="0 0 16 16">
<path d="M1 8a7 7 0 1 0 14 0A7 7 0 0 0 1 8m15 0A8 8 0 1 1 0 8a8 8 0 0 1 16 0M6.646 6.24v.07H5.375v-.064c0-1.213.879-2.402 2.637-2.402 1.582 0 2.613.949 2.613 2.215 0 1.002-.6 1.667-1.287 2.43l-.096.107-1.974 2.22v.077h3.498V12H5.422v-.832l2.97-3.293c.434-.475.903-1.008.903-1.705 0-.744-.557-1.236-1.313-1.236-.843 0-1.336.615-1.336 1.306"/>
</svg>

After

Width:  |  Height:  |  Size: 477 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-2-square-fill" viewBox="0 0 16 16">
<path d="M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2zm4.646 6.24v.07H5.375v-.064c0-1.213.879-2.402 2.637-2.402 1.582 0 2.613.949 2.613 2.215 0 1.002-.6 1.667-1.287 2.43l-.096.107-1.974 2.22v.077h3.498V12H5.422v-.832l2.97-3.293c.434-.475.903-1.008.903-1.705 0-.744-.557-1.236-1.313-1.236-.843 0-1.336.615-1.336 1.306"/>
</svg>

After

Width:  |  Height:  |  Size: 484 B

View File

@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-2-square" viewBox="0 0 16 16">
<path d="M6.646 6.24v.07H5.375v-.064c0-1.213.879-2.402 2.637-2.402 1.582 0 2.613.949 2.613 2.215 0 1.002-.6 1.667-1.287 2.43l-.096.107-1.974 2.22v.077h3.498V12H5.422v-.832l2.97-3.293c.434-.475.903-1.008.903-1.705 0-.744-.557-1.236-1.313-1.236-.843 0-1.336.615-1.336 1.306"/>
<path d="M0 2a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2zm15 0a1 1 0 0 0-1-1H2a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1z"/>
</svg>

After

Width:  |  Height:  |  Size: 564 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-3-circle-fill" viewBox="0 0 16 16">
<path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0m-8.082.414c.92 0 1.535.54 1.541 1.318.012.791-.615 1.36-1.588 1.354-.861-.006-1.482-.469-1.54-1.066H5.104c.047 1.177 1.05 2.144 2.754 2.144 1.653 0 2.954-.937 2.93-2.396-.023-1.278-1.031-1.846-1.734-1.916v-.07c.597-.1 1.505-.739 1.482-1.876-.03-1.177-1.043-2.074-2.637-2.062-1.675.006-2.59.984-2.625 2.12h1.248c.036-.556.557-1.054 1.348-1.054.785 0 1.348.486 1.348 1.195.006.715-.563 1.237-1.342 1.237h-.838v1.072h.879Z"/>
</svg>

After

Width:  |  Height:  |  Size: 607 B

View File

@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-3-circle" viewBox="0 0 16 16">
<path d="M7.918 8.414h-.879V7.342h.838c.78 0 1.348-.522 1.342-1.237 0-.709-.563-1.195-1.348-1.195-.79 0-1.312.498-1.348 1.055H5.275c.036-1.137.95-2.115 2.625-2.121 1.594-.012 2.608.885 2.637 2.062.023 1.137-.885 1.776-1.482 1.875v.07c.703.07 1.71.64 1.734 1.917.024 1.459-1.277 2.396-2.93 2.396-1.705 0-2.707-.967-2.754-2.144H6.33c.059.597.68 1.06 1.541 1.066.973.006 1.6-.563 1.588-1.354-.006-.779-.621-1.318-1.541-1.318"/>
<path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0M1 8a7 7 0 1 0 14 0A7 7 0 0 0 1 8"/>
</svg>

After

Width:  |  Height:  |  Size: 642 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-3-square-fill" viewBox="0 0 16 16">
<path d="M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2zm5.918 8.414h-.879V7.342h.838c.78 0 1.348-.522 1.342-1.237 0-.709-.563-1.195-1.348-1.195-.79 0-1.312.498-1.348 1.055H5.275c.036-1.137.95-2.115 2.625-2.121 1.594-.012 2.608.885 2.637 2.062.023 1.137-.885 1.776-1.482 1.875v.07c.703.07 1.71.64 1.734 1.917.024 1.459-1.277 2.396-2.93 2.396-1.705 0-2.707-.967-2.754-2.144H6.33c.059.597.68 1.06 1.541 1.066.973.006 1.6-.563 1.588-1.354-.006-.779-.621-1.318-1.541-1.318"/>
</svg>

After

Width:  |  Height:  |  Size: 634 B

View File

@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-3-square" viewBox="0 0 16 16">
<path d="M7.918 8.414h-.879V7.342h.838c.78 0 1.348-.522 1.342-1.237 0-.709-.563-1.195-1.348-1.195-.79 0-1.312.498-1.348 1.055H5.275c.036-1.137.95-2.115 2.625-2.121 1.594-.012 2.608.885 2.637 2.062.023 1.137-.885 1.776-1.482 1.875v.07c.703.07 1.71.64 1.734 1.917.024 1.459-1.277 2.396-2.93 2.396-1.705 0-2.707-.967-2.754-2.144H6.33c.059.597.68 1.06 1.541 1.066.973.006 1.6-.563 1.588-1.354-.006-.779-.621-1.318-1.541-1.318"/>
<path d="M0 2a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2zm15 0a1 1 0 0 0-1-1H2a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1z"/>
</svg>

After

Width:  |  Height:  |  Size: 714 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-4-circle-fill" viewBox="0 0 16 16">
<path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0M7.519 5.057c-.886 1.418-1.772 2.838-2.542 4.265v1.12H8.85V12h1.26v-1.559h1.007V9.334H10.11V4.002H8.176zM6.225 9.281v.053H8.85V5.063h-.065c-.867 1.33-1.787 2.806-2.56 4.218"/>
</svg>

After

Width:  |  Height:  |  Size: 359 B

View File

@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-4-circle" viewBox="0 0 16 16">
<path d="M7.519 5.057q.33-.527.657-1.055h1.933v5.332h1.008v1.107H10.11V12H8.85v-1.559H4.978V9.322c.77-1.427 1.656-2.847 2.542-4.265ZM6.225 9.281v.053H8.85V5.063h-.065c-.867 1.33-1.787 2.806-2.56 4.218"/>
<path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0M1 8a7 7 0 1 0 14 0A7 7 0 0 0 1 8"/>
</svg>

After

Width:  |  Height:  |  Size: 421 B

View File

@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-4-square-fill" viewBox="0 0 16 16">
<path d="M6.225 9.281v.053H8.85V5.063h-.065c-.867 1.33-1.787 2.806-2.56 4.218"/>
<path d="M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2zm5.519 5.057q.33-.527.657-1.055h1.933v5.332h1.008v1.107H10.11V12H8.85v-1.559H4.978V9.322c.77-1.427 1.656-2.847 2.542-4.265Z"/>
</svg>

After

Width:  |  Height:  |  Size: 428 B

View File

@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-4-square" viewBox="0 0 16 16">
<path d="M7.519 5.057q.33-.527.657-1.055h1.933v5.332h1.008v1.107H10.11V12H8.85v-1.559H4.978V9.322c.77-1.427 1.656-2.847 2.542-4.265ZM6.225 9.281v.053H8.85V5.063h-.065c-.867 1.33-1.787 2.806-2.56 4.218"/>
<path d="M0 2a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2zm15 0a1 1 0 0 0-1-1H2a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1z"/>
</svg>

After

Width:  |  Height:  |  Size: 493 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-5-circle-fill" viewBox="0 0 16 16">
<path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0m-8.006 4.158c1.74 0 2.924-1.119 2.924-2.806 0-1.641-1.178-2.584-2.56-2.584-.897 0-1.442.421-1.612.68h-.064l.193-2.344h3.621V4.002H5.791L5.445 8.63h1.149c.193-.358.668-.809 1.435-.809.85 0 1.582.604 1.582 1.57 0 1.085-.779 1.682-1.57 1.682-.697 0-1.389-.31-1.53-1.031H5.276c.065 1.213 1.149 2.115 2.72 2.115Z"/>
</svg>

After

Width:  |  Height:  |  Size: 495 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-5-circle" viewBox="0 0 16 16">
<path d="M1 8a7 7 0 1 1 14 0A7 7 0 0 1 1 8m15 0A8 8 0 1 0 0 8a8 8 0 0 0 16 0m-8.006 4.158c-1.57 0-2.654-.902-2.719-2.115h1.237c.14.72.832 1.031 1.529 1.031.791 0 1.57-.597 1.57-1.681 0-.967-.732-1.57-1.582-1.57-.767 0-1.242.45-1.435.808H5.445L5.791 4h4.705v1.103H6.875l-.193 2.343h.064c.17-.258.715-.68 1.611-.68 1.383 0 2.561.944 2.561 2.585 0 1.687-1.184 2.806-2.924 2.806Z"/>
</svg>

After

Width:  |  Height:  |  Size: 514 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-5-square-fill" viewBox="0 0 16 16">
<path d="M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2zm5.994 12.158c-1.57 0-2.654-.902-2.719-2.115h1.237c.14.72.832 1.031 1.529 1.031.791 0 1.57-.597 1.57-1.681 0-.967-.732-1.57-1.582-1.57-.767 0-1.242.45-1.435.808H5.445L5.791 4h4.705v1.103H6.875l-.193 2.343h.064c.17-.258.715-.68 1.611-.68 1.383 0 2.561.944 2.561 2.585 0 1.687-1.184 2.806-2.924 2.806Z"/>
</svg>

After

Width:  |  Height:  |  Size: 521 B

View File

@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-5-square" viewBox="0 0 16 16">
<path d="M7.994 12.158c-1.57 0-2.654-.902-2.719-2.115h1.237c.14.72.832 1.031 1.529 1.031.791 0 1.57-.597 1.57-1.681 0-.967-.732-1.57-1.582-1.57-.767 0-1.242.45-1.435.808H5.445L5.791 4h4.705v1.103H6.875l-.193 2.343h.064c.17-.258.715-.68 1.611-.68 1.383 0 2.561.944 2.561 2.585 0 1.687-1.184 2.806-2.924 2.806Z"/>
<path d="M0 2a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2zm15 0a1 1 0 0 0-1-1H2a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1z"/>
</svg>

After

Width:  |  Height:  |  Size: 601 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-6-circle-fill" viewBox="0 0 16 16">
<path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0M8.21 3.855c-1.868 0-3.116 1.395-3.116 4.407 0 1.183.228 2.039.597 2.642.569.926 1.477 1.254 2.409 1.254 1.629 0 2.847-1.013 2.847-2.783 0-1.676-1.254-2.555-2.508-2.555-1.125 0-1.752.61-1.98 1.155h-.082c-.012-1.946.727-3.036 1.805-3.036.802 0 1.213.457 1.312.815h1.29c-.06-.908-.962-1.899-2.573-1.899Zm-.099 4.008c-.92 0-1.564.65-1.564 1.576 0 1.032.703 1.635 1.558 1.635.868 0 1.553-.533 1.553-1.629 0-1.06-.744-1.582-1.547-1.582"/>
</svg>

After

Width:  |  Height:  |  Size: 617 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-6-circle" viewBox="0 0 16 16">
<path d="M1 8a7 7 0 1 0 14 0A7 7 0 0 0 1 8m15 0A8 8 0 1 1 0 8a8 8 0 0 1 16 0M8.21 3.855c1.612 0 2.515.99 2.573 1.899H9.494c-.1-.358-.51-.815-1.312-.815-1.078 0-1.817 1.09-1.805 3.036h.082c.229-.545.855-1.155 1.98-1.155 1.254 0 2.508.88 2.508 2.555 0 1.77-1.218 2.783-2.847 2.783-.932 0-1.84-.328-2.409-1.254-.369-.603-.597-1.459-.597-2.642 0-3.012 1.248-4.407 3.117-4.407Zm-.099 4.008c-.92 0-1.564.65-1.564 1.576 0 1.032.703 1.635 1.558 1.635.868 0 1.553-.533 1.553-1.629 0-1.06-.744-1.582-1.547-1.582"/>
</svg>

After

Width:  |  Height:  |  Size: 640 B

View File

@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-6-square-fill" viewBox="0 0 16 16">
<path d="M8.111 7.863c-.92 0-1.564.65-1.564 1.576 0 1.032.703 1.635 1.558 1.635.868 0 1.553-.533 1.553-1.629 0-1.06-.744-1.582-1.547-1.582"/>
<path d="M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2zm6.21 3.855c1.612 0 2.515.99 2.573 1.899H9.494c-.1-.358-.51-.815-1.312-.815-1.078 0-1.817 1.09-1.805 3.036h.082c.229-.545.855-1.155 1.98-1.155 1.254 0 2.508.88 2.508 2.555 0 1.77-1.218 2.783-2.847 2.783-.932 0-1.84-.328-2.409-1.254-.369-.603-.597-1.459-.597-2.642 0-3.012 1.248-4.407 3.117-4.407Z"/>
</svg>

After

Width:  |  Height:  |  Size: 662 B

View File

@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-6-square" viewBox="0 0 16 16">
<path d="M8.21 3.855c1.612 0 2.515.99 2.573 1.899H9.494c-.1-.358-.51-.815-1.312-.815-1.078 0-1.817 1.09-1.805 3.036h.082c.229-.545.855-1.155 1.98-1.155 1.254 0 2.508.88 2.508 2.555 0 1.77-1.218 2.783-2.847 2.783-.932 0-1.84-.328-2.409-1.254-.369-.603-.597-1.459-.597-2.642 0-3.012 1.248-4.407 3.117-4.407Zm-.099 4.008c-.92 0-1.564.65-1.564 1.576 0 1.032.703 1.635 1.558 1.635.868 0 1.553-.533 1.553-1.629 0-1.06-.744-1.582-1.547-1.582"/>
<path d="M0 2a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2zm15 0a1 1 0 0 0-1-1H2a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1z"/>
</svg>

After

Width:  |  Height:  |  Size: 727 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-7-circle-fill" viewBox="0 0 16 16">
<path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0M5.37 5.11h3.972v.07L6.025 12H7.42l3.258-6.85V4.002H5.369v1.107Z"/>
</svg>

After

Width:  |  Height:  |  Size: 251 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-7-circle" viewBox="0 0 16 16">
<path d="M1 8a7 7 0 1 0 14 0A7 7 0 0 0 1 8m15 0A8 8 0 1 1 0 8a8 8 0 0 1 16 0M5.37 5.11V4.001h5.308V5.15L7.42 12H6.025l3.317-6.82v-.07H5.369Z"/>
</svg>

After

Width:  |  Height:  |  Size: 279 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-7-square-fill" viewBox="0 0 16 16">
<path d="M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2zm3.37 5.11V4.001h5.308V5.15L7.42 12H6.025l3.317-6.82v-.07H5.369Z"/>
</svg>

After

Width:  |  Height:  |  Size: 286 B

View File

@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-7-square" viewBox="0 0 16 16">
<path d="M5.37 5.11V4.001h5.308V5.15L7.42 12H6.025l3.317-6.82v-.07H5.369Z"/>
<path d="M0 2a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2zm15 0a1 1 0 0 0-1-1H2a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1z"/>
</svg>

After

Width:  |  Height:  |  Size: 366 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-8-circle-fill" viewBox="0 0 16 16">
<path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0m-5.03 1.803c0-1.248-.943-1.84-1.646-1.992v-.065c.598-.187 1.336-.72 1.336-1.781 0-1.225-1.084-2.121-2.654-2.121s-2.66.896-2.66 2.12c0 1.044.709 1.589 1.33 1.782v.065c-.697.152-1.647.732-1.647 2.003 0 1.39 1.19 2.344 2.953 2.344 1.77 0 2.989-.96 2.989-2.355Zm-4.347-3.71c0 .739.586 1.255 1.383 1.255s1.377-.516 1.377-1.254c0-.733-.58-1.23-1.377-1.23s-1.383.497-1.383 1.23Zm-.281 3.645c0 .838.72 1.412 1.664 1.412.943 0 1.658-.574 1.658-1.412 0-.843-.715-1.424-1.658-1.424-.944 0-1.664.58-1.664 1.424"/>
</svg>

After

Width:  |  Height:  |  Size: 686 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-8-circle" viewBox="0 0 16 16">
<path d="M1 8a7 7 0 1 0 14 0A7 7 0 0 0 1 8m15 0A8 8 0 1 1 0 8a8 8 0 0 1 16 0m-5.03 1.803c0 1.394-1.218 2.355-2.988 2.355-1.763 0-2.953-.955-2.953-2.344 0-1.271.95-1.851 1.647-2.003v-.065c-.621-.193-1.33-.738-1.33-1.781 0-1.225 1.09-2.121 2.66-2.121s2.654.896 2.654 2.12c0 1.061-.738 1.595-1.336 1.782v.065c.703.152 1.647.744 1.647 1.992Zm-4.347-3.71c0 .739.586 1.255 1.383 1.255s1.377-.516 1.377-1.254c0-.733-.58-1.23-1.377-1.23s-1.383.497-1.383 1.23Zm-.281 3.645c0 .838.72 1.412 1.664 1.412.943 0 1.658-.574 1.658-1.412 0-.843-.715-1.424-1.658-1.424-.944 0-1.664.58-1.664 1.424"/>
</svg>

After

Width:  |  Height:  |  Size: 717 B

View File

@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-8-square-fill" viewBox="0 0 16 16">
<path d="M6.623 6.094c0 .738.586 1.254 1.383 1.254s1.377-.516 1.377-1.254c0-.733-.58-1.23-1.377-1.23s-1.383.497-1.383 1.23m-.281 3.644c0 .838.72 1.412 1.664 1.412.943 0 1.658-.574 1.658-1.412 0-.843-.715-1.424-1.658-1.424-.944 0-1.664.58-1.664 1.424"/>
<path d="M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2zm8.97 9.803c0 1.394-1.218 2.355-2.988 2.355-1.763 0-2.953-.955-2.953-2.344 0-1.271.95-1.851 1.647-2.003v-.065c-.621-.193-1.33-.738-1.33-1.781 0-1.225 1.09-2.121 2.66-2.121s2.654.896 2.654 2.12c0 1.061-.738 1.595-1.336 1.782v.065c.703.152 1.647.744 1.647 1.992Z"/>
</svg>

After

Width:  |  Height:  |  Size: 737 B

View File

@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-8-square" viewBox="0 0 16 16">
<path d="M10.97 9.803c0 1.394-1.218 2.355-2.988 2.355-1.763 0-2.953-.955-2.953-2.344 0-1.271.95-1.851 1.647-2.003v-.065c-.621-.193-1.33-.738-1.33-1.781 0-1.225 1.09-2.121 2.66-2.121s2.654.896 2.654 2.12c0 1.061-.738 1.595-1.336 1.782v.065c.703.152 1.647.744 1.647 1.992Zm-4.347-3.71c0 .739.586 1.255 1.383 1.255s1.377-.516 1.377-1.254c0-.733-.58-1.23-1.377-1.23s-1.383.497-1.383 1.23Zm-.281 3.645c0 .838.72 1.412 1.664 1.412.943 0 1.658-.574 1.658-1.412 0-.843-.715-1.424-1.658-1.424-.944 0-1.664.58-1.664 1.424"/>
<path d="M0 2a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2zm15 0a1 1 0 0 0-1-1H2a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1z"/>
</svg>

After

Width:  |  Height:  |  Size: 804 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-9-circle-fill" viewBox="0 0 16 16">
<path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0m-8.223 4.146c2.104 0 3.123-1.464 3.123-4.3 0-3.147-1.459-4.014-2.97-4.014-1.63 0-2.871 1.02-2.871 2.73 0 1.706 1.171 2.667 2.566 2.667 1.06 0 1.7-.557 1.934-1.184h.076c.047 1.67-.475 3.023-1.834 3.023-.71 0-1.149-.363-1.248-.72H5.258c.094.908.926 1.798 2.52 1.798Zm.118-3.972c.808 0 1.535-.528 1.535-1.594s-.668-1.676-1.56-1.676c-.838 0-1.517.616-1.517 1.659 0 1.072.708 1.61 1.54 1.61Z"/>
</svg>

After

Width:  |  Height:  |  Size: 574 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-9-circle" viewBox="0 0 16 16">
<path d="M1 8a7 7 0 1 0 14 0A7 7 0 0 0 1 8m15 0A8 8 0 1 1 0 8a8 8 0 0 1 16 0m-8.223 4.146c-1.593 0-2.425-.89-2.52-1.798h1.296c.1.357.539.72 1.248.72 1.36 0 1.88-1.353 1.834-3.023h-.076c-.235.627-.873 1.184-1.934 1.184-1.395 0-2.566-.961-2.566-2.666 0-1.711 1.242-2.731 2.87-2.731 1.512 0 2.971.867 2.971 4.014 0 2.836-1.02 4.3-3.123 4.3m.118-3.972c.808 0 1.535-.528 1.535-1.594s-.668-1.676-1.56-1.676c-.838 0-1.517.616-1.517 1.659 0 1.072.708 1.61 1.54 1.61Z"/>
</svg>

After

Width:  |  Height:  |  Size: 597 B

View File

@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-9-square-fill" viewBox="0 0 16 16">
<path d="M7.895 8.174c.808 0 1.535-.528 1.535-1.594s-.668-1.676-1.56-1.676c-.838 0-1.517.616-1.517 1.659 0 1.072.708 1.61 1.54 1.61Z"/>
<path d="M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2zm5.777 12.146c-1.593 0-2.425-.89-2.52-1.798h1.296c.1.357.539.72 1.248.72 1.36 0 1.88-1.353 1.834-3.023h-.076c-.235.627-.873 1.184-1.934 1.184-1.395 0-2.566-.961-2.566-2.666 0-1.711 1.242-2.731 2.87-2.731 1.512 0 2.971.867 2.971 4.014 0 2.836-1.02 4.3-3.123 4.3"/>
</svg>

After

Width:  |  Height:  |  Size: 620 B

View File

@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-9-square" viewBox="0 0 16 16">
<path d="M7.777 12.146c-1.593 0-2.425-.89-2.52-1.798h1.296c.1.357.539.72 1.248.72 1.36 0 1.88-1.353 1.834-3.023h-.076c-.235.627-.873 1.184-1.934 1.184-1.395 0-2.566-.961-2.566-2.666 0-1.711 1.242-2.731 2.87-2.731 1.512 0 2.971.867 2.971 4.014 0 2.836-1.02 4.3-3.123 4.3m.118-3.972c.808 0 1.535-.528 1.535-1.594s-.668-1.676-1.56-1.676c-.838 0-1.517.616-1.517 1.659 0 1.072.708 1.61 1.54 1.61Z"/>
<path d="M0 2a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2zm15 0a1 1 0 0 0-1-1H2a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1z"/>
</svg>

After

Width:  |  Height:  |  Size: 684 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-activity" viewBox="0 0 16 16">
<path fill-rule="evenodd" d="M6 2a.5.5 0 0 1 .47.33L10 12.036l1.53-4.208A.5.5 0 0 1 12 7.5h3.5a.5.5 0 0 1 0 1h-3.15l-1.88 5.17a.5.5 0 0 1-.94 0L6 3.964 4.47 8.171A.5.5 0 0 1 4 8.5H.5a.5.5 0 0 1 0-1h3.15l1.88-5.17A.5.5 0 0 1 6 2"/>
</svg>

After

Width:  |  Height:  |  Size: 366 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-airplane-engines-fill" viewBox="0 0 16 16">
<path d="M8 0c-.787 0-1.292.592-1.572 1.151A4.35 4.35 0 0 0 6 3v3.691l-2 1V7.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.191l-1.17.585A1.5 1.5 0 0 0 0 10.618V12a.5.5 0 0 0 .582.493l1.631-.272.313.937a.5.5 0 0 0 .948 0l.405-1.214 2.21-.369.375 2.253-1.318 1.318A.5.5 0 0 0 5.5 16h5a.5.5 0 0 0 .354-.854l-1.318-1.318.375-2.253 2.21.369.405 1.214a.5.5 0 0 0 .948 0l.313-.937 1.63.272A.5.5 0 0 0 16 12v-1.382a1.5 1.5 0 0 0-.83-1.342L14 8.691V7.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v.191l-2-1V3c0-.568-.14-1.271-.428-1.849C9.292.591 8.787 0 8 0"/>
</svg>

After

Width:  |  Height:  |  Size: 687 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-airplane-engines" viewBox="0 0 16 16">
<path d="M8 0c-.787 0-1.292.592-1.572 1.151A4.35 4.35 0 0 0 6 3v3.691l-2 1V7.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.191l-1.17.585A1.5 1.5 0 0 0 0 10.618V12a.5.5 0 0 0 .582.493l1.631-.272.313.937a.5.5 0 0 0 .948 0l.405-1.214 2.21-.369.375 2.253-1.318 1.318A.5.5 0 0 0 5.5 16h5a.5.5 0 0 0 .354-.854l-1.318-1.318.375-2.253 2.21.369.405 1.214a.5.5 0 0 0 .948 0l.313-.937 1.63.272A.5.5 0 0 0 16 12v-1.382a1.5 1.5 0 0 0-.83-1.342L14 8.691V7.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v.191l-2-1V3c0-.568-.14-1.271-.428-1.849C9.292.591 8.787 0 8 0M7 3c0-.432.11-.979.322-1.401C7.542 1.159 7.787 1 8 1s.458.158.678.599C8.889 2.02 9 2.569 9 3v4a.5.5 0 0 0 .276.447l5.448 2.724a.5.5 0 0 1 .276.447v.792l-5.418-.903a.5.5 0 0 0-.575.41l-.5 3a.5.5 0 0 0 .14.437l.646.646H6.707l.647-.646a.5.5 0 0 0 .14-.436l-.5-3a.5.5 0 0 0-.576-.411L1 11.41v-.792a.5.5 0 0 1 .276-.447l5.448-2.724A.5.5 0 0 0 7 7z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

Some files were not shown because too many files have changed in this diff Show More