‫۶ سال قبل، یکشنبه ۱۸ شهریور ۱۳۹۷، ساعت ۲۳:۴۴
سلام
من می‌خوستم از Scrutor   استفاده کنم 
کد سرویس من به صورت زیر است
namespace FirstProjectServices
{
    public interface IMessagesService
    {
        string GetSiteName();
    }

    public class MessagesService : IMessagesService
    {
        public string GetSiteName()
        {
            return "DNT";
        }
    }
}

namespace FirstProjectServices
{
    public interface IMessagesService2
    {
        string GetSiteName();
    }

    public class MessagesService2 : IMessagesService2
    {
        public string GetSiteName()
        {
            return "DNT";
        }
    }
}
و در کلاس Startup کد زیر رو نوشتم
public class Startup
    {
       public void ConfigureServices(IServiceCollection services)
        {
            var collection = new ServiceCollection();

            services.Scan(scan => scan
                // We start out with all types in the assembly of ITransientService
                .FromAssemblyOf<IMessagesService>()
                .AddClasses(classes => classes.AssignableTo<MessagesService>())
                .AsImplementedInterfaces()
                .WithTransientLifetime()
               );

         }

       
        public void Configure(IApplicationBuilder app, IHostingEnvironment env, IMessagesService2 _messagesService)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            // app.UseDefaultFiles();
            // app.UseStaticFiles();

            app.Run(async (context) =>
            {
                string siteName = _messagesService.GetSiteName();
                await context.Response.WriteAsync($"Site Name {siteName}");
            });
        }
    }
در متد ConfigureServices نحوه Register رو مشخص کردم (مپ کردن IMessagesService  به  MessagesService ) و در متد Configure انتظار دارم چون کلاس MessagesService  و MessagesService2 کنار هم هستند این نگاشت به درستی انجام شود و خطا میده که   نگاشت I MessagesService  تعریف نشده است. در صورتی که هدف ما اسکن کل اسمبلی هست. ممنون میشم راهنمایی کنید.
‫۹ سال و ۱۰ ماه قبل، شنبه ۱ آذر ۱۳۹۳، ساعت ۰۰:۴۰
با سلام
من یک فرم دارم که در اون کاربر باید دو عکس وارد کنید به صورت زیر
 <div>
        <div style="margin: 2px 4px !important">
            <div>
                عکس 1
                <input type="file" name="imageSrc" id="imageSrc" />
                @*@Html.Kendo().Upload().Name("imageSrc").Multiple(false)*@
                @Html.ValidationMessageFor(model => model.Image)
            </div>
        </div>

    </div>
    <div>
        <div style="margin: 2px 4px !important">
            <div>
                عکس 2
                <input type="file" name="imageSrc2" id="imageSrc2" />
                @*@Html.Kendo().Upload().Name("imageSrc2").Multiple(false)*@
                @Html.ValidationMessageFor(model => model.Image)
            </div>
        </div>

آیا می‌تونم این دو فایل رو با هم آپلود کنم؟ چون در مثال شما  fileElementId: 'Image1' ,  فقط نام یک کنترل را می‌گیرد.
ممنون
‫۱۰ سال و ۶ ماه قبل، سه‌شنبه ۲۷ اسفند ۱۳۹۲، ساعت ۰۱:۵۲
با سلام ، من می‌خواستم قسمت ارسال فایل را همانند شما فعال کنم مطابق کدی که فرمودید تنظیمات رو انجام دادم ولی هنگام انتخاب عکس از قسمت زیر
if (this.uploadOptions.success)
{
if (typeof d !== 'undefined')
{
// Remove bizarre <pre> tag wrappers around our json data:
var rawString = d.body.innerHTML;
var jsonString = rawString.match(/\{.*\}/)[0];
this.uploadOptions.success(jsonString);
}
خط
var jsonString = rawString.match(/\{.*\}/)[0];
خطای زیر رو مگیره
0x800a138f - JavaScript runtime error: Unable to get property '0' of undefined or null reference
ممنون میشم راهنمایی کنید
‫۱۱ سال و ۴ ماه قبل، چهارشنبه ۲۹ خرداد ۱۳۹۲، ساعت ۰۴:۴۵
با سلام، من کد شما را به صورت زیر تغییر دادم
ابتدا یک اینترفیس به صورت زیر ایجاد کردم
namespace Service.Interfaces
{
    public interface IGenericService<T> 
    {
        void AddOrUpdate(T entity);
        void Delete(T entity);
        T Find(Func<T, bool> predicate);
        T GetLast(Func<T, bool> predicate);
        IList<T> GetAll();
        IList<T> GetAll(Func<T, bool> predicate);
        IList<T> GetAll(Expression<Func<T, object>> orderby);
        IList<T> GetAll(Func<T, bool> predicate, Expression<Func<T, object>> orderby);

        Task<List<T>> GetAllAsync();
        Task<List<T>> GetAllAsync(Func<T, bool> predicate);
        Task<List<T>> GetAllAsync(Expression<Func<T, object>> orderby);
        Task<List<T>> GetAllAsync(Func<T, bool> predicate, Expression<Func<T, object>> orderby);

        int Count();
        int Count(Func<T, bool> predicate);
    }
}

و تمام اینترفیس‌های دیگر از این به صورت زیر به ارث برده شده اند
public interface IBookGroupService:IGenericService<BookGroup>
    {
    }

و در قسمت Servise یک کلاس ایجاد کردم که اینترفیس IGenericService  را پیاده سازی می‌کند که کدهای آن به صورت زیر است

public class EFGenericService<TEntity> : IGenericService<TEntity>
         where TEntity : class
    {
        protected IUnitOfWork _uow;
        protected IDbSet<TEntity> _tEntities;

        public EFGenericService(IUnitOfWork uow)
        {
            _uow = uow;
            _tEntities = _uow.Set<TEntity>();
        }


        public void AddOrUpdate(TEntity entity)
        {
             _tEntities.AddOrUpdate(entity);
        }

        public virtual void Delete(TEntity entity)
        {
            _tEntities.Remove(entity);
        }

        public virtual TEntity Find(Func<TEntity, bool> predicate)
        {
            return _tEntities.Where(predicate).FirstOrDefault();
        }

        public virtual TEntity GetLast(Func<TEntity, bool> predicate)
        {
            return _tEntities.Where(predicate).Last();
        }


        public virtual IList<TEntity> GetAll()
        {
            return _tEntities.ToList();
        }

        public virtual IList<TEntity> GetAll(Func<TEntity, bool> predicate)
        {
            return _tEntities.Where(predicate).ToList();
        }

        public virtual IList<TEntity> GetAll(Expression<Func<TEntity, object>> @orderby)
        {
            return _tEntities.OrderBy(@orderby).ToList();
        }

        public virtual IList<TEntity> GetAll(Func<TEntity, bool> predicate, Expression<Func<TEntity, object>> @orderby)
        {
            return _tEntities.OrderBy(@orderby).Where(predicate).ToList();
        }

        public async Task<List<TEntity>> GetAllAsync()
        {
           return await Task.Run(() => _tEntities.ToList());
        }

        public async Task<List<TEntity>> GetAllAsync(Func<TEntity, bool> predicate)
        {
          return await Task.Run(() => _tEntities.Where(predicate).ToList());
        }

        public async Task<List<TEntity>> GetAllAsync(Expression<Func<TEntity, object>> @orderby)
        {
           return await Task.Run(() => _tEntities.OrderBy(@orderby).ToList());
        }

        public async Task<List<TEntity>> GetAllAsync(Func<TEntity, bool> predicate, Expression<Func<TEntity, object>> @orderby)
        {
           return await Task.Run(()=> _tEntities.OrderBy(@orderby).Where(predicate).ToList());
        }

        public virtual int Count()
        {
            return _tEntities.Count();
        }

        public virtual int Count(Func<TEntity, bool> predicate)
        {
            return _tEntities.Count(predicate);
        }
    }


و بقیه کلاس‌ها از کلاس بالا به ارث می‌برند.

public class EFBorrowService:EFGenericService<Borrow>,IBorrowService
    {
        public EFBorrowService(IUnitOfWork uow) : base(uow)
        {
        }
    }


حال سوال من اینه که این پیاده سازی از لحاظ پیاده سازی مشکلی ندارد؟ و می‌توانم در پروژه هام از این روش استفاده کنم یا خیر؟

ممنونم
‫۱۱ سال و ۴ ماه قبل، سه‌شنبه ۲۸ خرداد ۱۳۹۲، ساعت ۰۴:۳۱
با سلام؛ الان که داشتم این بخش رو می‌خوندم به این قسمت رسیدم

البته در این حالت امکان تعریف ErrorMessage وجود ندارد و برای این منظور باید از همان data annotations استفاده کرد. 

حال با توجه به این مطلب آیا بهتره که در MVC از annotations  به جای Fluent API استفاده کنیم؟ (چون با استفاده از Fluent API  نمی توانیم متن خطا را ایجاد کنیم)

ممنونم.
‫۱۱ سال و ۱۰ ماه قبل، دوشنبه ۶ آذر ۱۳۹۱، ساعت ۰۰:۰۵
آیا منبع خاصی برای کار سراغ دارید؟ ممنون
‫۱۱ سال و ۱۰ ماه قبل، یکشنبه ۵ آذر ۱۳۹۱، ساعت ۲۲:۵۴
با سلام. دوست عزیز من روی یه برنامه‌ی کار می‌کنم که یه سری سلسله مراتب داره مثلاً یک درخواست ثبت می‌شود و باید امضا مجاز آن را تایید کند و بعد از آن به سمت سرپرست واحد ارسال می‌شود و سرپرست واحد بعد از آن می‌تواند آن را به سمت کارشناس ارسال کند و هم می‌تواند به سمت انباردار ارسال کند . من این سلسله مراتب را با DB پیاده کردم حال برای سازمان‌های مختلف مجبورم این سلسله مراتب را عوض کنم مثلاً امضا مجاز از این سلسله مراتب حذف می‌شود برای این کار من خیلی باید کد‌های خودم را تغییر دهم آیا می‌توانم این روند را با استفاده از WF پیاده کنم؟

ممنونم
‫۱۱ سال و ۱۱ ماه قبل، دوشنبه ۲۹ آبان ۱۳۹۱، ساعت ۱۹:۵۱
اگر بخواهیم در قسمت Footer  گزارش(هر صفحه )، فقط از <hr/> و یک نوشته استفاده کنم باید از چه تنظیماتی استفاده کنم؟
ممنون
‫۱۱ سال و ۱۲ ماه قبل، شنبه ۲۹ مهر ۱۳۹۱، ساعت ۰۵:۰۱
جناب نصیری من زمانی که فایل25817   رو از این آدرس دانلود می‌کنم و کل Solution رو اجرا می‌کنم بهم خطای زیر رو میده




و وقتی که از پوشه Samples فایل مربوط به WebApp رو باز می‌کنم باز هم قادر به اجرای اون نیستم.