diff --git a/BaseDomain/Base/AEntity.cs b/BaseDomain/Base/AEntity.cs new file mode 100644 index 0000000..9449d08 --- /dev/null +++ b/BaseDomain/Base/AEntity.cs @@ -0,0 +1,78 @@ +using BaseDomain.SimpleValidator; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BaseDomain.Base +{ + public abstract class AEntity where TKey : class + where T : class + { + ObjectValidatorBuilder objectValidatorBuilder; + bool rulesAdded; + + public ObjectValidatorBuilder ValidatorBuilder { get { return objectValidatorBuilder; } } + + public AEntity() + { + T entity; + try + { + entity = (T)Convert.ChangeType(this, typeof(T)); + } + catch (InvalidCastException) + { + entity = default; + } + + objectValidatorBuilder = new ObjectValidatorBuilder(entity); + AddRules(); + } + + public ObjectValidatorBuilder InitValidator() + { + T entity; + try + { + entity = (T)Convert.ChangeType(this, typeof(T)); + } + catch (InvalidCastException) + { + entity = default; + } + + objectValidatorBuilder = new ObjectValidatorBuilder(entity); + return objectValidatorBuilder; + } + + public abstract TKey Id { get; set; } + + public void ValidateAndThrow() + { + SetClearAndRules(); + objectValidatorBuilder.ThrowErrorMessages(); + } + + public string GetErrorMessages() + { + SetClearAndRules(); + return objectValidatorBuilder.ErrorMessagesAsString(); + } + + public bool IsValid() + { + SetClearAndRules(); + return objectValidatorBuilder.IsValid(); + } + + private void SetClearAndRules() + { + objectValidatorBuilder.ClearRules(); + AddRules(); + objectValidatorBuilder.Build(); + } + public abstract void AddRules(); + } +} diff --git a/BaseDomain/Base/AValueObject.cs b/BaseDomain/Base/AValueObject.cs new file mode 100644 index 0000000..e0c2191 --- /dev/null +++ b/BaseDomain/Base/AValueObject.cs @@ -0,0 +1,63 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BaseDomain +{ + public abstract class AValueObject + { + protected static bool EqualOperator(AValueObject left, AValueObject right) + { + if (ReferenceEquals(left, null) ^ ReferenceEquals(right, null)) + { + return false; + } + return ReferenceEquals(left, right) || left.Equals(right); + } + + protected static bool NotEqualOperator(AValueObject left, AValueObject right) + { + return !EqualOperator(left, right); + } + protected abstract IEnumerable GetEqualityComponents(); + + public override bool Equals(object obj) + { + if (obj == null || obj.GetType() != GetType()) + { + return false; + } + + var other = (AValueObject)obj; + + return GetEqualityComponents().SequenceEqual(other.GetEqualityComponents()); + } + + public static bool operator ==(AValueObject one, AValueObject two) + { + return EqualOperator(one, two); + } + + public static bool operator !=(AValueObject one, AValueObject two) + { + return NotEqualOperator(one, two); + } + + public override int GetHashCode() + { + return GetEqualityComponents() + .Select(x => x != null ? x.GetHashCode() : 0) + .Aggregate((x, y) => x ^ y); + } + + public Func GetValidationFunc() => GetValidationExpression; + public abstract bool GetValidationExpression(); + + public const string ErrorMessage = ""; + + public bool IsValid { get; protected set; } + } +} diff --git a/BaseDomain/BaseDomain.csproj b/BaseDomain/BaseDomain.csproj new file mode 100644 index 0000000..d53549b --- /dev/null +++ b/BaseDomain/BaseDomain.csproj @@ -0,0 +1,21 @@ + + + + net7.0 + enable + enable + + + + + + + + + + + + + + + diff --git a/BaseDomain/Repositories/Contracts/IRepoCommand.cs b/BaseDomain/Repositories/Contracts/IRepoCommand.cs new file mode 100644 index 0000000..16535d3 --- /dev/null +++ b/BaseDomain/Repositories/Contracts/IRepoCommand.cs @@ -0,0 +1,10 @@ +namespace DIC.Test.Data.Contracts +{ + public interface IRepoCommand where T : class + where TId : struct + { + void Add(T entity); + void Update(T entity); + void Delete(T entity); + } +} diff --git a/BaseDomain/Repositories/Contracts/IRepoQuery.cs b/BaseDomain/Repositories/Contracts/IRepoQuery.cs new file mode 100644 index 0000000..ab8f03c --- /dev/null +++ b/BaseDomain/Repositories/Contracts/IRepoQuery.cs @@ -0,0 +1,14 @@ +using System.Linq.Expressions; + +namespace DIC.Test.Data.Contracts +{ + public interface IRepoQuery where T : class + where TId : struct + { + public T GetById(TId id); + + public IEnumerable GetAll(); + + public IEnumerable FindAll(Expression expression); + } +} diff --git a/BaseDomain/Repositories/Contracts/IRepoReadOnly.cs b/BaseDomain/Repositories/Contracts/IRepoReadOnly.cs new file mode 100644 index 0000000..b5292f0 --- /dev/null +++ b/BaseDomain/Repositories/Contracts/IRepoReadOnly.cs @@ -0,0 +1,8 @@ +namespace DIC.Test.Data.Contracts +{ + public interface IRepoReadOnly : IRepoQuery + where T : class + where TId : struct + { + } +} diff --git a/BaseDomain/Repositories/Contracts/IRepository.cs b/BaseDomain/Repositories/Contracts/IRepository.cs new file mode 100644 index 0000000..11ac11f --- /dev/null +++ b/BaseDomain/Repositories/Contracts/IRepository.cs @@ -0,0 +1,10 @@ +using System.Runtime.InteropServices; + +namespace DIC.Test.Data.Contracts +{ + public interface IRepository : IRepoCommand, IRepoQuery + where T : class + where TId : struct + { + } +} diff --git a/BaseDomain/Results/Error.cs b/BaseDomain/Results/Error.cs new file mode 100644 index 0000000..6466204 --- /dev/null +++ b/BaseDomain/Results/Error.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BaseDomain.Results +{ + public class Error + { + public enum ErrorTypeEnum + { + None = 0, //Erro vazio (para result) + Failure = 1, //Quando for uma falha que eu queira retornar no lugar de uma Exception + Validation = 2, //Quando for um problema de validação + Others = 3 //Inesperado ou sem categoria + } + + public Error(ErrorTypeEnum error, string message, string description="") + { + ErrorType = error; + Message = message; + } + + public static Error None => new Error(ErrorTypeEnum.None, string.Empty, string.Empty); + + public ErrorTypeEnum ErrorType { get; } + public string Message { get; } + public string Description { get; } + + public static implicit operator string(Error error) => error.Message; + + //Permitir atribuir um error diretamente ao resultado. + public static implicit operator Result(Error error) => Result.Failure(error); + } +} diff --git a/BaseDomain/Results/Result.cs b/BaseDomain/Results/Result.cs new file mode 100644 index 0000000..f6b11c5 --- /dev/null +++ b/BaseDomain/Results/Result.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BaseDomain.Results +{ + public class Result + { + protected Result(bool isSuccess, Error error) + { + if (isSuccess && error != Error.None) + { + throw new InvalidOperationException(); + } + if (!isSuccess && error == Error.None) + { + throw new InvalidOperationException(); + } + + this.IsSuccess = isSuccess; + this.Error = error; + } + + public bool IsSuccess { get; } + public bool IsFalilure => !IsSuccess; + public Error Error { get; } + + public static Result Success() => new(true, Error.None); + public static Result Failure(Error error) => new(false, Error.None); + } +} diff --git a/BaseDomain/Results/ResultT.cs b/BaseDomain/Results/ResultT.cs new file mode 100644 index 0000000..0eaf098 --- /dev/null +++ b/BaseDomain/Results/ResultT.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BaseDomain.Results +{ + public class Result : Result + { + private readonly TValue _value; + + protected Result(TValue value, bool isSuccess, Error error) : base(isSuccess, error) + { + _value = value; + } + + protected Result(TValue value) : base(true, Error.None) + { + _value = value; + } + + public TValue Value => IsSuccess ? _value : throw new InvalidOperationException("O valor náo pode ser processado!"); + + public static implicit operator Result(TValue? value) => Create(value); + public static Result Success(TValue value) => new(value); + + public static Result Create(TValue value) + { + return new Result(value, true, Error.None); + } + + } +} diff --git a/BaseDomain/SimpleValidator/ObjectValidatorBuilder.cs b/BaseDomain/SimpleValidator/ObjectValidatorBuilder.cs new file mode 100644 index 0000000..f23ddc0 --- /dev/null +++ b/BaseDomain/SimpleValidator/ObjectValidatorBuilder.cs @@ -0,0 +1,102 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BaseDomain.SimpleValidator +{ + public class ObjectValidatorBuilder + { + /// + /// model that is validated + /// + private T model; + private bool isValid; + + public ObjectValidatorBuilder(T objectOrEntity) + { + model = objectOrEntity; + } + + /// + /// Check if model meetf all rules + /// + public ObjectValidatorBuilder Build() + { + //select all ruiles without OnlyIf expression or with satisfied OnlyIf expression + var invalidResults = _rules.Where(m => m.OnlyIf == null || (m.OnlyIf != null && m.OnlyIf(model))); + + //select all rules that arent satisfied + invalidResults = invalidResults.Where(m => !m.ValidationExpression(model)); + + //set error messages of unsatisfied rules + ErrorMessages = invalidResults.Select(m => m.ErrorMessage).ToList(); + + isValid =!invalidResults.Any(); + + return this; + } + + public bool IsValid() + { + return isValid; + } + + public void ThrowErrorMessages() + { + if (!isValid) throw new ArgumentException(this.ErrorMessagesAsString()); + } + + public string ErrorMessagesAsString() + { + return String.Join("\n", this.ErrorMessages); + } + + /// + /// Get error messages for rules that are not satisfied + /// + public List ErrorMessages { get; set; } + + /// + /// List of rules that are specified for model + /// + private readonly List> _rules = new List>(); + + public ObjectValidatorBuilder AddRule(Func validationExpression, Func onlyIf, String errorMessage) + { + _rules.Add(new ValidationRule() + { + ValidationExpression = validationExpression, + OnlyIf = onlyIf, + ErrorMessage = errorMessage + }); + + return this; + } + + public ObjectValidatorBuilder AddRule(Func validationExpression, String errorMessage) + { + AddRule(validationExpression, null, errorMessage); + return this; + } + + public ObjectValidatorBuilder AddRule(AValueObject valueObject) + { + + AddRule((valueObject) => (valueObject as AValueObject).GetValidationExpression(), null, AValueObject.ErrorMessage); + return this; + } + + public ObjectValidatorBuilder AddRule(ValidationRule rule) + { + AddRule(rule); + return this; + } + + public void ClearRules() + { + _rules.Clear(); + } + } +} diff --git a/BaseDomain/SimpleValidator/ValidationRule.cs b/BaseDomain/SimpleValidator/ValidationRule.cs new file mode 100644 index 0000000..50c620c --- /dev/null +++ b/BaseDomain/SimpleValidator/ValidationRule.cs @@ -0,0 +1,41 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BaseDomain.SimpleValidator +{ + public class ValidationRule + { + public ValidationRule() + { + } + + public ValidationRule(Func validationExpression, Func onlyIf, String errorMessage) + { + ValidationExpression = validationExpression; + OnlyIf = onlyIf; + ErrorMessage = errorMessage; + } + public ValidationRule(Func validationExpression, String errorMessage) + { + ValidationExpression = validationExpression; + ErrorMessage = errorMessage; + } + /// + /// Validation rule expression, examp. check is string null or empty !string.IsNullOrEmpty(o.Name) + /// + public Func ValidationExpression { get; set; } + + /// + /// You can specify OnlyIf expression, if this expresion is specified than ValidationExpression is going to be evaluated only if OnlyIf rule is satisfied + /// + public Func OnlyIf { get; set; } + + /// + /// Specify error message that will be returned if rule is not satisifed + /// + public string ErrorMessage { get; set; } + } +} diff --git a/VCart.Infra/MongoDB/MongoDBContext.cs b/SumaTuba.Infra/MongoDB/MongoDBContext.cs similarity index 100% rename from VCart.Infra/MongoDB/MongoDBContext.cs rename to SumaTuba.Infra/MongoDB/MongoDBContext.cs diff --git a/VCart.Infra/MongoDB/UserPerson.cs b/SumaTuba.Infra/MongoDB/UserPerson.cs similarity index 100% rename from VCart.Infra/MongoDB/UserPerson.cs rename to SumaTuba.Infra/MongoDB/UserPerson.cs diff --git a/VCart.Infra/Blinks.Infra.csproj b/SumaTuba.Infra/SumaTube.Infra.csproj similarity index 100% rename from VCart.Infra/Blinks.Infra.csproj rename to SumaTuba.Infra/SumaTube.Infra.csproj diff --git a/VCart.Domain/Entities/BusinessAreas.cs b/SumaTube.Domain/Entities/BusinessAreas.cs similarity index 100% rename from VCart.Domain/Entities/BusinessAreas.cs rename to SumaTube.Domain/Entities/BusinessAreas.cs diff --git a/VCart.Domain/Entities/BusinessAres.cs b/SumaTube.Domain/Entities/BusinessAres.cs similarity index 100% rename from VCart.Domain/Entities/BusinessAres.cs rename to SumaTube.Domain/Entities/BusinessAres.cs diff --git a/VCart.Domain/Entities/LinkBio.cs b/SumaTube.Domain/Entities/LinkBio.cs similarity index 100% rename from VCart.Domain/Entities/LinkBio.cs rename to SumaTube.Domain/Entities/LinkBio.cs diff --git a/VCart.Domain/Entities/PageBio.cs b/SumaTube.Domain/Entities/PageBio.cs similarity index 100% rename from VCart.Domain/Entities/PageBio.cs rename to SumaTube.Domain/Entities/PageBio.cs diff --git a/VCart.Domain/Entities/PersonUser.cs b/SumaTube.Domain/Entities/PersonUser.cs similarity index 100% rename from VCart.Domain/Entities/PersonUser.cs rename to SumaTube.Domain/Entities/PersonUser.cs diff --git a/VCart.Domain/Entities/ServiceLinkPart.cs b/SumaTube.Domain/Entities/ServiceLinkPart.cs similarity index 100% rename from VCart.Domain/Entities/ServiceLinkPart.cs rename to SumaTube.Domain/Entities/ServiceLinkPart.cs diff --git a/VCart.Domain/Entities/ServiceLinks.cs b/SumaTube.Domain/Entities/ServiceLinks.cs similarity index 100% rename from VCart.Domain/Entities/ServiceLinks.cs rename to SumaTube.Domain/Entities/ServiceLinks.cs diff --git a/VCart.Domain/Entities/UserPlan.cs b/SumaTube.Domain/Entities/UserPlan.cs similarity index 100% rename from VCart.Domain/Entities/UserPlan.cs rename to SumaTube.Domain/Entities/UserPlan.cs diff --git a/VCart.Domain/Blinks.Domain.csproj b/SumaTube.Domain/SumaTube.Domain.csproj similarity index 86% rename from VCart.Domain/Blinks.Domain.csproj rename to SumaTube.Domain/SumaTube.Domain.csproj index b6e91af..7a86427 100644 --- a/VCart.Domain/Blinks.Domain.csproj +++ b/SumaTube.Domain/SumaTube.Domain.csproj @@ -15,7 +15,7 @@ - + diff --git a/VCart.Domain/ValueObjects/DateBirth.cs b/SumaTube.Domain/ValueObjects/DateBirth.cs similarity index 100% rename from VCart.Domain/ValueObjects/DateBirth.cs rename to SumaTube.Domain/ValueObjects/DateBirth.cs diff --git a/VCart.Domain/ValueObjects/DateChanged.cs b/SumaTube.Domain/ValueObjects/DateChanged.cs similarity index 100% rename from VCart.Domain/ValueObjects/DateChanged.cs rename to SumaTube.Domain/ValueObjects/DateChanged.cs diff --git a/VCart.Domain/ValueObjects/Email.cs b/SumaTube.Domain/ValueObjects/Email.cs similarity index 100% rename from VCart.Domain/ValueObjects/Email.cs rename to SumaTube.Domain/ValueObjects/Email.cs diff --git a/VCart.Domain/ValueObjects/Id.cs b/SumaTube.Domain/ValueObjects/Id.cs similarity index 100% rename from VCart.Domain/ValueObjects/Id.cs rename to SumaTube.Domain/ValueObjects/Id.cs diff --git a/VCart.Domain/ValueObjects/Name.cs b/SumaTube.Domain/ValueObjects/Name.cs similarity index 100% rename from VCart.Domain/ValueObjects/Name.cs rename to SumaTube.Domain/ValueObjects/Name.cs diff --git a/VCart.Domain/ValueObjects/Phone.cs b/SumaTube.Domain/ValueObjects/Phone.cs similarity index 100% rename from VCart.Domain/ValueObjects/Phone.cs rename to SumaTube.Domain/ValueObjects/Phone.cs diff --git a/VCart.Domain/ValueObjects/Username.cs b/SumaTube.Domain/ValueObjects/Username.cs similarity index 100% rename from VCart.Domain/ValueObjects/Username.cs rename to SumaTube.Domain/ValueObjects/Username.cs diff --git a/SumaTube.sln b/SumaTube.sln new file mode 100644 index 0000000..d7fa2d3 --- /dev/null +++ b/SumaTube.sln @@ -0,0 +1,43 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.7.34031.279 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SumaTube.Domain", "SumaTube.Domain\SumaTube.Domain.csproj", "{9EE2B90B-6670-A0CB-C994-528BD66E1792}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SumaTube.Infra", "SumaTuba.Infra\SumaTube.Infra.csproj", "{AD1CCD27-71DF-8E98-B2F8-7169ABF34BF3}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SumaTube", "SumaTube\SumaTube.csproj", "{48F33338-AF1C-3D68-A116-2799CC9E98F4}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BaseDomain", "BaseDomain\BaseDomain.csproj", "{8DEA200D-FF43-0D75-15A2-7DA8831449C9}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {9EE2B90B-6670-A0CB-C994-528BD66E1792}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9EE2B90B-6670-A0CB-C994-528BD66E1792}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9EE2B90B-6670-A0CB-C994-528BD66E1792}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9EE2B90B-6670-A0CB-C994-528BD66E1792}.Release|Any CPU.Build.0 = Release|Any CPU + {AD1CCD27-71DF-8E98-B2F8-7169ABF34BF3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AD1CCD27-71DF-8E98-B2F8-7169ABF34BF3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AD1CCD27-71DF-8E98-B2F8-7169ABF34BF3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AD1CCD27-71DF-8E98-B2F8-7169ABF34BF3}.Release|Any CPU.Build.0 = Release|Any CPU + {48F33338-AF1C-3D68-A116-2799CC9E98F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {48F33338-AF1C-3D68-A116-2799CC9E98F4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {48F33338-AF1C-3D68-A116-2799CC9E98F4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {48F33338-AF1C-3D68-A116-2799CC9E98F4}.Release|Any CPU.Build.0 = Release|Any CPU + {8DEA200D-FF43-0D75-15A2-7DA8831449C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8DEA200D-FF43-0D75-15A2-7DA8831449C9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8DEA200D-FF43-0D75-15A2-7DA8831449C9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8DEA200D-FF43-0D75-15A2-7DA8831449C9}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {EC4AB36F-49CB-4819-ACA4-3A14CB1D9B50} + EndGlobalSection +EndGlobal diff --git a/VCart/.dockerignore b/SumaTube/.dockerignore similarity index 100% rename from VCart/.dockerignore rename to SumaTube/.dockerignore diff --git a/VCart/Controllers/CartHomeController.cs b/SumaTube/Controllers/CartHomeController.cs similarity index 100% rename from VCart/Controllers/CartHomeController.cs rename to SumaTube/Controllers/CartHomeController.cs diff --git a/VCart/Controllers/HomeController.cs b/SumaTube/Controllers/HomeController.cs similarity index 100% rename from VCart/Controllers/HomeController.cs rename to SumaTube/Controllers/HomeController.cs diff --git a/VCart/Controllers/LanguageController.cs b/SumaTube/Controllers/LanguageController.cs similarity index 100% rename from VCart/Controllers/LanguageController.cs rename to SumaTube/Controllers/LanguageController.cs diff --git a/VCart/Controllers/LoginController.cs b/SumaTube/Controllers/LoginController.cs similarity index 100% rename from VCart/Controllers/LoginController.cs rename to SumaTube/Controllers/LoginController.cs diff --git a/VCart/Controllers/PayController.cs b/SumaTube/Controllers/PayController.cs similarity index 100% rename from VCart/Controllers/PayController.cs rename to SumaTube/Controllers/PayController.cs diff --git a/VCart/Controllers/PlansController.cs b/SumaTube/Controllers/PlansController.cs similarity index 100% rename from VCart/Controllers/PlansController.cs rename to SumaTube/Controllers/PlansController.cs diff --git a/VCart/Controllers/SignInController.cs b/SumaTube/Controllers/SignInController.cs similarity index 100% rename from VCart/Controllers/SignInController.cs rename to SumaTube/Controllers/SignInController.cs diff --git a/VCart/Controllers/StartupController.cs b/SumaTube/Controllers/StartupController.cs similarity index 100% rename from VCart/Controllers/StartupController.cs rename to SumaTube/Controllers/StartupController.cs diff --git a/VCart/Dockerfile b/SumaTube/Dockerfile similarity index 100% rename from VCart/Dockerfile rename to SumaTube/Dockerfile diff --git a/VCart/LogConfig/LogCredentials.cs b/SumaTube/LogConfig/LogCredentials.cs similarity index 100% rename from VCart/LogConfig/LogCredentials.cs rename to SumaTube/LogConfig/LogCredentials.cs diff --git a/VCart/LogConfig/LogLabelProvider.cs b/SumaTube/LogConfig/LogLabelProvider.cs similarity index 100% rename from VCart/LogConfig/LogLabelProvider.cs rename to SumaTube/LogConfig/LogLabelProvider.cs diff --git a/VCart/Middle/RequestLocalizationMiddleware.cs b/SumaTube/Middle/RequestLocalizationMiddleware.cs similarity index 100% rename from VCart/Middle/RequestLocalizationMiddleware.cs rename to SumaTube/Middle/RequestLocalizationMiddleware.cs diff --git a/VCart/Models/ChangeViewModel.cs b/SumaTube/Models/ChangeViewModel.cs similarity index 100% rename from VCart/Models/ChangeViewModel.cs rename to SumaTube/Models/ChangeViewModel.cs diff --git a/VCart/Models/ErrorViewModel.cs b/SumaTube/Models/ErrorViewModel.cs similarity index 100% rename from VCart/Models/ErrorViewModel.cs rename to SumaTube/Models/ErrorViewModel.cs diff --git a/VCart/Models/Payment.cs b/SumaTube/Models/Payment.cs similarity index 100% rename from VCart/Models/Payment.cs rename to SumaTube/Models/Payment.cs diff --git a/VCart/NewReport2.upgrade.json b/SumaTube/NewReport2.upgrade.json similarity index 100% rename from VCart/NewReport2.upgrade.json rename to SumaTube/NewReport2.upgrade.json diff --git a/VCart/Program.cs b/SumaTube/Program.cs similarity index 100% rename from VCart/Program.cs rename to SumaTube/Program.cs diff --git a/VCart/Properties/launchSettings.json b/SumaTube/Properties/launchSettings.json similarity index 100% rename from VCart/Properties/launchSettings.json rename to SumaTube/Properties/launchSettings.json diff --git a/VCart/Readme.md b/SumaTube/Readme.md similarity index 100% rename from VCart/Readme.md rename to SumaTube/Readme.md diff --git a/VCart/Resource.Designer.cs b/SumaTube/Resource.Designer.cs similarity index 100% rename from VCart/Resource.Designer.cs rename to SumaTube/Resource.Designer.cs diff --git a/VCart/Resource.pt-BR.Designer.cs b/SumaTube/Resource.pt-BR.Designer.cs similarity index 100% rename from VCart/Resource.pt-BR.Designer.cs rename to SumaTube/Resource.pt-BR.Designer.cs diff --git a/VCart/Resource.pt-BR.resx b/SumaTube/Resource.pt-BR.resx similarity index 100% rename from VCart/Resource.pt-BR.resx rename to SumaTube/Resource.pt-BR.resx diff --git a/VCart/Resource.resx b/SumaTube/Resource.resx similarity index 100% rename from VCart/Resource.resx rename to SumaTube/Resource.resx diff --git a/VCart/Blinks.csproj b/SumaTube/SumaTube.csproj similarity index 100% rename from VCart/Blinks.csproj rename to SumaTube/SumaTube.csproj diff --git a/VCart/Views/Home/Carousel1.cshtml b/SumaTube/Views/Home/Carousel1.cshtml similarity index 100% rename from VCart/Views/Home/Carousel1.cshtml rename to SumaTube/Views/Home/Carousel1.cshtml diff --git a/VCart/Views/Home/Index.cshtml b/SumaTube/Views/Home/Index.cshtml similarity index 100% rename from VCart/Views/Home/Index.cshtml rename to SumaTube/Views/Home/Index.cshtml diff --git a/VCart/Views/Home/Index.cshtml.css b/SumaTube/Views/Home/Index.cshtml.css similarity index 100% rename from VCart/Views/Home/Index.cshtml.css rename to SumaTube/Views/Home/Index.cshtml.css diff --git a/VCart/Views/Home/Privacy.cshtml b/SumaTube/Views/Home/Privacy.cshtml similarity index 100% rename from VCart/Views/Home/Privacy.cshtml rename to SumaTube/Views/Home/Privacy.cshtml diff --git a/VCart/Views/Login/Index.cshtml b/SumaTube/Views/Login/Index.cshtml similarity index 100% rename from VCart/Views/Login/Index.cshtml rename to SumaTube/Views/Login/Index.cshtml diff --git a/VCart/Views/Login/Index_xpto.css b/SumaTube/Views/Login/Index_xpto.css similarity index 100% rename from VCart/Views/Login/Index_xpto.css rename to SumaTube/Views/Login/Index_xpto.css diff --git a/VCart/Views/Pay/Index.cshtml b/SumaTube/Views/Pay/Index.cshtml similarity index 100% rename from VCart/Views/Pay/Index.cshtml rename to SumaTube/Views/Pay/Index.cshtml diff --git a/VCart/Views/Plans/Index.cshtml b/SumaTube/Views/Plans/Index.cshtml similarity index 100% rename from VCart/Views/Plans/Index.cshtml rename to SumaTube/Views/Plans/Index.cshtml diff --git a/VCart/Views/Plans/Index.cshtml.css b/SumaTube/Views/Plans/Index.cshtml.css similarity index 100% rename from VCart/Views/Plans/Index.cshtml.css rename to SumaTube/Views/Plans/Index.cshtml.css diff --git a/VCart/Views/Plans/OrderView.cshtml b/SumaTube/Views/Plans/OrderView.cshtml similarity index 100% rename from VCart/Views/Plans/OrderView.cshtml rename to SumaTube/Views/Plans/OrderView.cshtml diff --git a/VCart/Views/Plans/Pay - Copy.cshtml b/SumaTube/Views/Plans/Pay - Copy.cshtml similarity index 100% rename from VCart/Views/Plans/Pay - Copy.cshtml rename to SumaTube/Views/Plans/Pay - Copy.cshtml diff --git a/VCart/Views/Plans/Pay.cshtml b/SumaTube/Views/Plans/Pay.cshtml similarity index 100% rename from VCart/Views/Plans/Pay.cshtml rename to SumaTube/Views/Plans/Pay.cshtml diff --git a/VCart/Views/Shared/Error.cshtml b/SumaTube/Views/Shared/Error.cshtml similarity index 100% rename from VCart/Views/Shared/Error.cshtml rename to SumaTube/Views/Shared/Error.cshtml diff --git a/VCart/Views/Shared/_Busy.cshtml b/SumaTube/Views/Shared/_Busy.cshtml similarity index 100% rename from VCart/Views/Shared/_Busy.cshtml rename to SumaTube/Views/Shared/_Busy.cshtml diff --git a/VCart/Views/Shared/_Language.cshtml b/SumaTube/Views/Shared/_Language.cshtml similarity index 100% rename from VCart/Views/Shared/_Language.cshtml rename to SumaTube/Views/Shared/_Language.cshtml diff --git a/VCart/Views/Shared/_Layout.cshtml b/SumaTube/Views/Shared/_Layout.cshtml similarity index 98% rename from VCart/Views/Shared/_Layout.cshtml rename to SumaTube/Views/Shared/_Layout.cshtml index 3d183f9..af6b613 100644 --- a/VCart/Views/Shared/_Layout.cshtml +++ b/SumaTube/Views/Shared/_Layout.cshtml @@ -9,7 +9,7 @@ - + @await RenderSectionAsync("Styles", required: false) @@ -17,7 +17,7 @@