ممنون بابت معرفی، از وجود چنین date picker خوبی بی خبر بودم. حتما در پروژه استفاده خواهم کرد.
نظرات مطالب
namespace BlazorWasmSQLite.Models; public class Car { public int Id { get; set; } public string Brand { get; set; } public int Price { get; set; } }
using Microsoft.EntityFrameworkCore; using BlazorWasmSQLite.Models; namespace BlazorWasmSQLite.Data; public class ClientSideDbContext : DbContext { public DbSet<Car> Cars { get; set; } = default!; public ClientSideDbContext(DbContextOptions<ClientSideDbContext> options) : base(options) { } }
<Project Sdk="Microsoft.NET.Sdk.BlazorWebAssembly"> <ItemGroup> <!-- EF Core and Sqlite --> <PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="6.0.1" /> </ItemGroup> </Project>
using Microsoft.AspNetCore.Components.Web; using Microsoft.AspNetCore.Components.WebAssembly.Hosting; using BlazorWasmSQLite; using Microsoft.EntityFrameworkCore; using BlazorWasmSQLite.Data; var builder = WebAssemblyHostBuilder.CreateDefault(args); builder.RootComponents.Add<App>("#app"); builder.RootComponents.Add<HeadOutlet>("head::after"); builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) }); // Sets up EF Core with Sqlite builder.Services.AddDbContextFactory<ClientSideDbContext>(options => options .UseSqlite($"Filename=DemoData.db") .EnableSensitiveDataLogging()); await builder.Build().RunAsync();
@page "/" @using Microsoft.Data.Sqlite @using Microsoft.EntityFrameworkCore @using BlazorWasmSQLite.Data @using BlazorWasmSQLite.Models <PageTitle>Index</PageTitle> <h1>Hello, world!</h1> Welcome to your new app. <SurveyPrompt Title="How is Blazor working for you?" /> @code { [Inject] private IDbContextFactory<ClientSideDbContext> _dbContextFactory { get; set; } = default!; protected override async Task OnInitializedAsync() { await using var db = await _dbContextFactory.CreateDbContextAsync(); await db.Database.EnsureCreatedAsync(); // create seed data if (!db.Cars.Any()) { var cars = new[] { new Car { Brand = "Audi", Price = 21000 }, new Car { Brand = "Volvo", Price = 11000 }, new Car { Brand = "Range Rover", Price = 135000 }, new Car { Brand = "Ford", Price = 8995 } }; await db.Cars.AddRangeAsync(cars); await db.SaveChangesAsync(); } await base.OnInitializedAsync(); } }
crit: Microsoft.AspNetCore.Components.WebAssembly.Rendering.WebAssemblyRenderer[100] Unhandled exception rendering component: The type initializer for 'Microsoft.Data.Sqlite.SqliteConnection' threw an exception. System.TypeInitializationException: The type initializer for 'Microsoft.Data.Sqlite.SqliteConnection' threw an exception. ---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.DllNotFoundException: e_sqlite3 at SQLitePCL.SQLite3Provider_e_sqlite3.SQLitePCL.ISQLite3Provider.sqlite3_libversion_number()
$ git clone https://github.com/cloudmeter/sqlite $ cd sqlite $ emcc sqlite3.c -shared -o e_sqlite3.o
<Project Sdk="Microsoft.NET.Sdk.BlazorWebAssembly"> <ItemGroup> <!-- EF Core and Sqlite --> <PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="6.0.1" /> <NativeFileReference Include="Data\e_sqlite3.o" /> </ItemGroup> </Project>
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Security.Cryptography; using System.Text; using Microsoft.Win32; using System.Management; namespace ConsoleApplication1 { class Program { private static string GetSystemCode_int1(byte[] byte_0) { if (byte_0 != null) { return Convert.ToBase64String((new MD5CryptoServiceProvider()).ComputeHash(byte_0)); } else { return string.Empty; } } private static string GetSystemCode_int0(string string_2) { if (!string.IsNullOrEmpty(string_2)) { return GetSystemCode_int1(Encoding.UTF8.GetBytes(string_2)); } else { return string.Empty; } } public static string GetSystemCode() { string key = null; if (key == null) { string empty = string.Empty; try { ManagementClass managementClass = new ManagementClass("win32_processor"); ManagementObjectCollection instances = managementClass.GetInstances(); foreach (ManagementBaseObject instance in instances) { try { empty = string.Concat(empty, instance.Properties["processorID"].Value.ToString()); break; } catch { } } } catch { try { ManagementObjectSearcher managementObjectSearcher = new ManagementObjectSearcher("Select * From Win32_BaseBoard"); foreach (ManagementBaseObject managementBaseObject in managementObjectSearcher.Get()) { empty = string.Concat(empty, managementBaseObject["SerialNumber"].ToString().Trim()); } } catch { } } try { ManagementObject managementObject = new ManagementObject("win32_logicaldisk.deviceid=\"C:\""); managementObject.Get(); empty = string.Concat(empty, managementObject["VolumeSerialNumber"].ToString()); } catch { } if (string.IsNullOrWhiteSpace(empty)) { empty = Environment.MachineName; } key = GetSystemCode_int0(empty); } return key; } static void Main(string[] args) { Console.WriteLine(GetSystemCode()); Console.ReadKey(); } } }
new SendMsg().ShowMsg( new AlertConfirmBoxModel { ErrorTitle = "خطای اعتبار سنجی", Errors = errors, }, validationException);
public class DomainResult { public bool Succeed { get; set; } public IEnumerable<Exception> Errors { get; set; } public DomainErrorType ErrorType { get; set; } } public enum DomainErrorType { Validation, Concurrency, Update }
public DomainResult ApplyAllChanges(string userName, bool updateAuditFields = true) ...
var MyTime = function () { var date; var tag; var init = function (hour, minute, seconds, tagId) { var constructor = getConstructorString(hour, minute, seconds); date = new Date(constructor); tag = document.getElementById(tagId); //console.log('MyTime : Init(%s, %s, %s, %s)', hour, minute, seconds, tagId); }; var run = function () { update(); window.setInterval(update, 1000); //console.log('MyTime : Run'); }; var update = function updateClock() { var h = date.getHours(); var m = date.getMinutes(); var s = date.getSeconds(); s++; if (s == 60) { m++; s = 0; }; if (m == 60) { h++; m = 0; }; if (h == 13) h = 1; var constructor = getConstructorString(h, m, s); date = new Date(constructor); h = (h < 10) ? ("0" + h) : h; m = (m < 10) ? ("0" + m) : m; s = (s < 10) ? ("0" + s) : s; tag.innerHTML = h + ":" + m + ":" + s; //console.log('MyTime : update'); }; var getConstructorString = function (hour, minute, seconds) { //console.log('MyTime : getConstructorString'); return '01/01/2000 ' + hour + ':' + minute + ':' + seconds; }; return { Init: init, Run: run }; }
myTime = new MyTime(); myTime.Init(12, 59, 50, 'clock'); myTime.Run();
type [access-modifier] type-name [type-params] [access-modifier] ( parameter-list ) [ as identifier ] = [ class ] [ inherit base-type-name(base-constructor-args) ] [ let-bindings ] [ do-bindings ] member-list ... [ end ] type [access-modifier] type-name1 ... and [access-modifier] type-name2 ... ...
نکته : protected access modifier در #F پشتیبانی نمیشود.
مثالی از تعریف کلاس:
type Account(number : int, name : string) = class let mutable amount = 0m end
let myAccount = new Account(123456, "Masoud")
type Account(number : int, name: string) = class let mutable amount = 0m member x.Number = number member x.Name= name member x.Amount = amount member x.Deposit(value) = amount <- amount + value member x.Withdraw(value) = amount <- amount - value end
open System type Account(number : int, name: string) = class let mutable amount = 0m member x.Number = number member x.Name= name member x.Amount = amount member x.Deposit(value) = amount <- amount + value member x.Withdraw(value) = amount <- amount - value end
let masoud= new Account(12345, "Masoud") let saeed = new Account(67890, "Saeed") let transfer amount (source : Account) (target : Account) = source.Withdraw amount target.Deposit amount let printAccount (x : Account) = printfn "x.Number: %i, x.Name: %s, x.Amount: %M" x.Number x.Name x.Amount let main() = let printAccounts() = [masoud; saeed] |> Seq.iter printAccount printfn "\nInializing account" homer.Deposit 50M marge.Deposit 100M printAccounts() printfn "\nTransferring $30 from Masoud to Saeed" transfer 30M masoud saeed
printAccounts() printfn "\nTransferring $75 from Saeed to Masoud" transfer 75M saeed masoud printAccounts() main()
open System open System.Net type Stock(symbol : string) = class let mutable _symbol = String.Empty do //کد مورد نظر در این جا نوشته میشود end
open System type MyType(a:int, b:int) as this = inherit Object() let x = 2*a let y = 2*b do printfn "Initializing object %d %d %d %d %d %d" a b x y (this.Prop1) (this.Prop2) static do printfn "Initializing MyType." member this.Prop1 = 4*x member this.Prop2 = 4*y override this.ToString() = System.String.Format("{0} {1}", this.Prop1, this.Prop2) let obj1 = new MyType(1, 2)
Initializing MyType. Initializing object 1 2 2 4 8 16
type SomeClass(prop : int) = class member x.Prop = prop static member SomeStaticMethod = "This is a static method" end
let instance = new SomeClass(5);; instance.SomeStaticMethod;; output: stdin(81,1): error FS0191: property 'SomeStaticMethod' is static.
SomeClass.SomeStaticMethod;; (* invoking static method *)
member alias.PropertyName with get() = some-value and set(value) = some-assignment
type MyClass() = class let mutable num = 0 member x.Num with get() = num and set(value) = num <- value end;;
public int Num { get{return num;} set{num=value;} }
type MyClass() = class let mutable num = 0 member x.Num with get() = num and set(value) = if value > 10 || value < 0 then raise (new Exception("Values must be between 0 and 10")) else num <- value end
type type-name = interface inherits-decl member-defns end
type IPrintable = abstract member Print : unit -> unit
type SomeClass1(x: int, y: float) = interface IPrintable with member this.Print() = printfn "%d %f" x y
let instance = new SomeClass1(10,20) instance.Print//فراخوانی این متد باعث ایجاد خطای کامپایلری میشود.
let instance = new SomeClass1(10,20) let instanceCast = instance :> IPrintable// استفاده از (<:) برای عملیات تبدیل کلاس به اینترفیس instanceCast.Print
type Interface1 = abstract member Method1 : int -> int type Interface2 = abstract member Method2 : int -> int type Interface3 = inherit Interface1 inherit Interface2 abstract member Method3 : int -> int type MyClass() = interface Interface3 with member this.Method1(n) = 2 * n member this.Method2(n) = n + 100 member this.Method3(n) = n / 10
let instance = new MyClass() let instanceToCast = instance :> Interface3 instanceToCast.Method3 10
[<AbstractClass>] type [ accessibility-modifier ] abstract-class-name = [ inherit base-class-or-interface-name ] [ abstract-member-declarations-and-member-definitions ] abstract member member-name : type-signature
[<AbstractClass>] type Shape(x0 : float, y0 : float) = let mutable x, y = x0, y0 let mutable rotAngle = 0.0 abstract Area : float with get abstract Perimeter : float with get abstract Name : string with get
type Square(x, y,SideLength) = inherit Shape(x, y)
override this.Area = this.SideLength * this.SideLength override this.Perimeter = this.SideLength * 4. override this.Name = "Square"
type Circle(x, y, radius) = inherit Shape(x, y)
let PI = 3.141592654 member this.Radius = radius override this.Area = PI * this.Radius * this.Radius override this.Perimeter = 2. * PI * this.Radius
ساختار کلی تعریف structure
[ attributes ] type [accessibility-modifier] type-name = struct type-definition-elements end //یا به صورت زیر [ attributes ] [<StructAttribute>] type [accessibility-modifier] type-name = type-definition-elements
type Point3D = struct val x: float val y: float val z: float end
type Point2D = struct val X: float val Y: float new(x: float, y: float) = { X = x; Y = y } end
using System.Security.Claims; using Microsoft.AspNetCore.Components.Authorization; using Microsoft.AspNetCore.Components.Server; namespace BlazorServerTestDynamicAccess.Services; public class CustomAuthenticationStateProvider : RevalidatingServerAuthenticationStateProvider { private readonly IServiceScopeFactory _scopeFactory; public CustomAuthenticationStateProvider(ILoggerFactory loggerFactory, IServiceScopeFactory scopeFactory) : base(loggerFactory) => _scopeFactory = scopeFactory ?? throw new ArgumentNullException(nameof(scopeFactory)); protected override TimeSpan RevalidationInterval { get; } = TimeSpan.FromMinutes(30); protected override async Task<bool> ValidateAuthenticationStateAsync( AuthenticationState authenticationState, CancellationToken cancellationToken) { // Get the user from a new scope to ensure it fetches fresh data var scope = _scopeFactory.CreateScope(); try { var userManager = scope.ServiceProvider.GetRequiredService<IUsersService>(); return await ValidateUserAsync(userManager, authenticationState?.User); } finally { if (scope is IAsyncDisposable asyncDisposable) { await asyncDisposable.DisposeAsync(); } else { scope.Dispose(); } } } private async Task<bool> ValidateUserAsync(IUsersService userManager, ClaimsPrincipal? principal) { if (principal is null) { return false; } var userIdString = principal.FindFirst(ClaimTypes.UserData)?.Value; if (!int.TryParse(userIdString, out var userId)) { return false; } var user = await userManager.FindUserAsync(userId); return user is not null; } }
public static class WoObjectFactory { private static readonly Lazy<Container> ContainerBuilder = new Lazy<Container>(DefaultContainer, LazyThreadSafetyMode.ExecutionAndPublication); public static IContainer Container { get { return ContainerBuilder.Value; } } private static Container DefaultContainer() { var _container = new Container(x => { var platformSpecificRegistry = PlatformAdapter.Resolve<IPlatformSpecificMapperRegistry>(); platformSpecificRegistry.Initialize(); x.For<ConfigurationStore>().Singleton().Use<ConfigurationStore>().Ctor<IEnumerable<IObjectMapper>>().Is(MapperRegistry.Mappers); x.For<IConfigurationProvider>().Use(ctx => ctx.GetInstance<ConfigurationStore>()); x.For<IConfiguration>().Use(ctx => ctx.GetInstance<ConfigurationStore>()); x.For<ITypeMapFactory>().Use<TypeMapFactory>(); x.For<IMappingEngine>().Singleton().Use<MappingEngine>().SelectConstructor(() => new MappingEngine(null)); x.For<IUnitOfWork>().HybridHttpOrThreadLocalScoped().Use(() => new WirelessOrganizationContext()); x.Scan(scan => { scan.AssemblyContainingType<IDeviceService>(); scan.TheCallingAssembly(); scan.WithDefaultConventions(); }); x.Scan(scanner => { scanner.AssembliesFromApplicationBaseDirectory(); scanner.ConnectImplementationsToTypesClosing(typeof(ITypeConverter<,>)) .OnAddedPluginTypes(t => t.HybridHttpOrThreadLocalScoped()); scanner.ConnectImplementationsToTypesClosing(typeof(ValueResolver<,>)) .OnAddedPluginTypes(t => t.HybridHttpOrThreadLocalScoped()); }); x.Scan(scan => { scan.TheCallingAssembly(); scan.WithDefaultConventions(); scan.AddAllTypesOf<Profile>().NameBy(item => item.FullName); }); }); ConfigureAutoMapper(_container); return _container; } private static void ConfigureAutoMapper(IContainer container) { var configuration = container.TryGetInstance<IConfiguration>(); if (configuration == null) return; //saying AutoMapper how to resolve services configuration.ConstructServicesUsing(container.GetInstance); foreach (var profile in container.GetAllInstances<Profile>()) { configuration.AddProfile(profile); } } }
var smr = new StateMachineRequest(workflowData, startId); smr.GuardClauseFromToTrigger = new StateMachineRequest.GuardClauseDelegate(this.OnFromStateToState); smr.OnEntry = new StateMachineRequest.EntryExitDelegate(this.OnEntryState); smr.OnExit = new StateMachineRequest.EntryExitDelegate(this.OnExitState); smr.Configure(); public bool OnFromStateToState(string id) { // TODO check can go to next state return true; } public void OnEntryState(string stateId) { // TODO } public void OnExitState(string stateId) { // TODO save data + save state + send an email ,Etc }
index: ' (StronglyTyped.PropertyName<StateCityViewModel>(x => x.CityName))',
public async Task<DataGridViewModel<StateCityViewModel>> GetDataGridSource(string orderBy, JqGridRequest request, NameValueCollection form, DateTimeType dateTimeType, int page, int pageSize) { var query = _stateCity.AsQueryable(); query = new JqGridSearch(request, form, dateTimeType).ApplyFilter(query); var resultsToSkip = page * pageSize; var dataGridModel = new DataGridViewModel<StateCityViewModel> { Records = await query.AsQueryable().OrderBy(orderBy) .Skip(() => resultsToSkip) .Take(pageSize).ProjectTo<StateCityViewModel>(null, _mappingEngine).ToListAsync(), TotalCount = await query.AsQueryable().OrderBy(orderBy).CountAsync() }; return dataGridModel; }