قابلیت جدید باگ در باگتو چیست؟

برای رفع باگ‌ها، مشکلات، و یا سؤالاتی که در زمینه برنامه‌نویسی دارید می‌توانید از باگ استفاده کنید. در باگ مشکل خود را برای ما ارسال کنید پشتیبانی باگتو و کاربران باگتو راهکارهای برای رفع مشکلات به شما ارائه می‌دهند. یا اگر در زمینه برنامه‌نویسی تخصص دارید می‌توانید باگ‌های ارسال شده را بررسی نمایید و پاسخی برای آنها ارسال نمایید


آخرین باگ ها


علیرضا ناصری مقدم
پاسخ ها (5)

جناب باباپی با سلام و تشکر بابت پاسخ به سوال قبل بنده

همانطور که در عنوان نیز توضیح دادم ، 2 جدول دارم:

1 - "Leaves" با 21000 رکورد مرخصی برای 50 نفر در طول 20 سال

2- "StatisticLeave" که اکنون خالی است ،

قصد دارم با استفاده از داده های  جدول 1  پس از انجام برخی محاسبات (مانند جمع و ...) خلاصه نتایج را در جدول دوم قرار دهم که خالی است . برای اینکار قطعه کد زیر را نوشتم:


        public ActionResult UserStatistic(Int32? PCode)
        {
            //PCode = 8520;
            var ST = new List<StatisticLeave>();
            var resuls = db.Leaves.GroupBy(p => p.Pcode);
            foreach (var Pcode in resuls)
            {
                var statistic = new StatisticLeave();
                //var result2 = db.Leaves.GroupBy(p =>p.HijriYear);
                foreach (var item in Pcode)
                { 
                    var used = UsedLeaves(item.Pcode);
                    var estelaji = db.Leaves.Where(p => p.DLT == Leave.DLType.Estelaji).Sum(p => p.LeaveDays); 
                    var bh = db.Leaves.Where(p => p.DLT == Leave.DLType.Bihoghoogh).Sum(p => p.LeaveDays);                 
                    statistic.Yearlyhours = ViewBag.mins/60;
                    statistic.YearlyDays = ViewBag.days;
                    statistic.YearEstelaji = estelaji;
                    statistic.YearBihoghoogh = bh;
                    statistic.Pcode = item.Pcode;
                    statistic.Year = item.HijriYear;
                    statistic.UsedYearLaeve = (used / 60) / 8;
                    ST.Add(statistic);
                }
                db.StatisticLeave.AddRange(ST);
            }
            db.SaveChanges();
            return View();
        }

قصد دارم داده ها را بر اساس کد اشخاص گروه بندی و سپس به تفکیک سالها آمار را استخراج و برای هر سال یک رکورد ثبت کنم ولی با trace مشخص شد هنگام رسیدن به دستور GroupBy خطای زیر رخ می دهد:

"System.InvalidOperationException HResult=0x80131509 Message=Unable to translate the given 'GroupBy' pattern. Call 'AsEnumerable' before 'GroupBy' to evaluate it client-side."



احمد کنعانی
پاسخ ها (2)

با عرض سلام و خسته نباشید 

 یک سرویس برای تغییرات اطلاعات کاربر مانند (fullname , email) نوشتم ... با کامپایل نمودن به صورت سطر به سطر اطلاعات را مشاهده می نماییم که تغییر یافته اما در جدول دیتابیس ذخیره نمی گردد. در واقع کد خط _Context.SaveChange(); عمل نمی کند... من در اینترفیس IDatabaseContext هم تابع Savechange اضافه کردم اما جواب نداد

using Application.Interfaces.Contexts;
using Common.Dto;
using Domain.User;
using Microsoft.AspNetCore.Identity;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Application.Services.Users
{
    public interface IUserProfileService
    {
        ResultDto UserProfileEdit(UserProfileDto UserProfileDto);
        ResultDto<UserProfileDto> UserProfileGet(string Username);
    }

    public class UserProfileService : IUserProfileService
    {
        public IDataBaseContext _Context { get; }
        public UserManager<User> _UserManger { get; }
        public UserProfileService(IDataBaseContext Context, UserManager<User> UserManger)
        {
            _Context = Context;
            _UserManger = UserManger;
        }

        public ResultDto UserProfileEdit(UserProfileDto UserProfileDto)
        {
            //این بخش چک می کند که اطلاعات ورودی خالی نباشد
            if (string.IsNullOrEmpty(UserProfileDto.FullName) || string.IsNullOrEmpty(UserProfileDto.Email))
            {
                return (new ResultDto
                {
                    IsSuccess = false,
                    Message = "لطفا اطلا عات درخواستی را تکمیل نمایید",
                });
            }

            var user = _UserManger.FindByNameAsync(UserProfileDto.UserName).Result;
            if (user != null)
            {
                user.FullName = UserProfileDto.FullName;
                user.Email = UserProfileDto.Email;
                _Context.SaveChanges();
                //var result = _Context.SaveChanges();

                return (new ResultDto
                {
                    IsSuccess = true,
                    Message = "اطلاعات با موفقیت ذخیره گردید",
                });
            }
            else
            {
                return (new ResultDto
                {
                    IsSuccess = false,
                    Message = "کاربر مورد نظر یافت نگردید",
                });
            }
        }

        public ResultDto<UserProfileDto> UserProfileGet(string Username)
        {
            //این بخش چک می کند که اطلاعات ورودی خالی نباشد
            if (string.IsNullOrEmpty(Username))
            {
                return (new ResultDto<UserProfileDto>
                {
                    IsSuccess = false,
                    Message = "لطفا اطلا عات درخواستی را تکمیل نمایید",
                    Data = null,
                });
            }

            var user = _UserManger.FindByNameAsync(Username).Result;
            if (user != null)
            {
                return (new ResultDto<UserProfileDto>
                {
                    IsSuccess = true,
                    Message = "اطلاعات کاربر دریافت گردید",
                    Data = new UserProfileDto
                    {
                        Email = user.Email,
                        FullName = user.FullName,
                        UserName = user.UserName,
                    },
                });
            }
            else
            {
                return (new ResultDto<UserProfileDto>
                {
                    IsSuccess = false,
                    Message = "اطلاعات کاربر یافت نگردید",
                    Data = null,
                });
            }
        }
    }


    public class UserProfileDto
    {
        [Display(Name = "نام کاربری")]
        public string UserName { get; set; }

        [Display(Name = "نام نام خانوادگی")]
        public string FullName { get; set; }

        [Display(Name = "ایمیل")]
        public string Email { get; set; }
    }
}
 


سلام

اگر در پروژه از مونگو دی بی استفاده کرده باشیم آیا هاستی که استفاده میکنیم باید دارای مونگو دی بی باشه؟ و ممکنه هاست مونگو دی بی نداشته باشه؟



علیرضا ناصری مقدم
پاسخ ها (1)

سلام

بنده یک جدول با 2000 رکورد دارم که برای آن pagiantion  تعریف کرده ام ولی داخل ویو کد را نتوانستم اصلاح کنم تا تعداد شماره صفحه  محدود و مثلا 10 صفحه باشد .

کد داخل بفرم زیر هست:

<div class="row text-center">
    <nav> 
        <ul class="pagination">

            <li class="disabled"><a aria-label="Previous" href="#"><span aria-hidden="true">«</span></a></li>
            @for (int i = 1; i <= (ViewBag.PageCount + 1); i++)
            {
                <li class="@(((int)ViewBag.PageID==i)?"active":"")"><a href="/Person /Index?pageid=@i">@i<span class="sr-only">(current)</span></a></li>
            }
            <li><a aria-label="Next" href="#"><span aria-hidden="true">»</span></a></li>
        </ul>
    </nav>
</div>

لطفا راهنمایی کنید کد را به چه صورتی اصلاح کنم



نوراله قرنجیک
پاسخ ها (1)

با سلام خدمت استاد گرامی

برای کنترل یکتا بودن یک فیلد در جدول چطور توی دات نت کور عمل کنیم؟ من این کارو کردم:

        protected override void OnModelCreating(ModelBuilder builder)
        {
            builder.Entity<Person>()
                .HasIndex(u => u.UserName)
                .IsUnique();
        }

این درست عمل میکنه. ولی چطور خطا رو توی کنترل و اگر ممکنه در ویو کنترل کنم؟


سلام استاد محترم

من در حال دیدن قسمت 6-2 از اموزش رایگان asp.net core 5 شما هستم واقعا عالی هست یک مشکل تا اینجا برخورد کردم و اونم اینه که وقتی این کدها رو جایگزین تعریف خود تابع main می کنم و برنامه را run می کنم هیچ خطایی نمیده ولی صفحه اولی که شما در فیلم نمایش می دید نمی اد و صفحه در حالت لود باقی می مونه کدها اینها هستند:

public static void Main(string[] args)
        {
            //CreateHostBuilder(args).Build().Run();
            var host = new WebHostBuilder()
                .UseKestrel()
                .UseIISIntegration()
                .UseContentRoot(Directory.GetCurrentDirectory())
                .UseStartup<Startup>()
                .Build();
            host.Run();
        }

من عین کدهایی که زدید رو زدم اگر امکانش هست من رو راهنمایی بفرمایید ممنونم



محمد منیعات
پاسخ ها (0)

فصل داکر درس کانتینیر ها اون قسمت که میخوایم  docker exec کینم من یوز و پسور رو درست میزنم دقیقا همونی که تو ران زدم ولی به من ارور میده زمانی که کد رو میزنم

..'Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : Login failed for user 'SA' رو میده چیکار کنم


درود جناب مهندس

در سیگنال آر اگر بخواهیم نام اتاقها بجای آی دی یه اسم باشه باید چکار کنیم؟

من نتونستم لسیتی از یه کلاس که شامل نام و آی دی هست را به فایل جاوا اسکریپت SupportSignalRService پاس بدم و از نام یه جای آی دی در لیست اتاقها استفاده کنم


سلام دوستان 

در دوره identity در قسمت register در متد post 

خود استاد همین کد زد و عملیات موفق امیز بود 

 

public IActionResult OnPost(RegisterAccount command)
        {

            if (ModelState.IsValid == false)
            {
                return Page();
            }

            Account newUser = new Account()
            {
                FirstName = command.FirstName,
                LastName = command.LastName,
                Email = command.Email,
                UserName = command.Email,
            };

            var result = _userManager.CreateAsync(newUser, command.Password).Result;
            if (result.Succeeded)
            {
                return RedirectToPage("Index");
            }

            string message = "";
            foreach (var item in result.Errors.ToList())
            {
                message += item.Description + Environment.NewLine;
            }
            TempData["Message"] = message;
            return RedirectToPage("Signup");
        }

من هم همین کارو کردم و اطلاعات با موفقیت میاد ولی وقتی در این کد که 

  if (result.Succeeded)
            {
                return RedirectToPage("Index");
            }

میام result چک میکنم وارد if نمیشه و اطلاعات کاربر وارد بانک اطلاعاتی نمیشه 

عملیات انجام میشه ولی داخل بانک اطلاعاتی ثبت نمیشه



نوراله قرنجیک
پاسخ ها (4)

با سلام

بنده یک دیتا بیس فاکس با 21000 رکورد داشتم که دیتا را تبدیل و به یک table موقت در دیتابیس sql انتقال دادم چون دیتا نیاز به ادیت داشت و اغلب رشته ای بود .

قطعه کد زیر با هدف اینکه رکوردهای جدول موقت را خوانده و بعد از اعمال تغییرات به جدول اصلی انتقال دهد نوشته شده.

در کد زیر اگر از دستور db.savechange داخل حلقه استفاده شود خطای ذکر شده در عنوان بالا ظاهر می شود ولی اگر دستور در خارج از حلقه باشد هم بعد از خروج از حلقه فقط چند رکورد اندک در تیبل اصلی درج می شود. لازم بذکر است که دستور  db.SaveChangesAsync را هم داخل حلقه تست میکنم تفاوت این هست که خطا اتفاق نمی افتد ولی ظاهرا برنامه از loop نیز خارج نمی شود.

 

 

     public ActionResult FeedTempdataToMainDB()
        {
            
            var L = new Leave();
            //  var leaves = new List<Leave>();
            foreach (var item in db.TempLeaves)
            {
                L.Pcode = Int32.Parse(item.Cod);
                var z = int.Parse(item.LT) - 1;
                if (z == 0) L.LT = Leave.LeaveType.Saati;
                else L.LT = Leave.LeaveType.Roozane;
                var o = int.Parse(item.DLT) - 1;
                if (o == 0) L.DLT = Leave.DLType.Estehghaghi;
                if (o == 1) L.DLT = Leave.DLType.Estelaji;
                else L.DLT = Leave.DLType.Bihoghoogh;
                L.LeaveDayStart = item.LeaveDayStart.Old6digToMiladi();
                L.LeaveDayEnd = item.LeaveDayEnd.Old6digToMiladi();
                L.LeaveTimeStart = StringToHour(item.LeaveTimeStart);
                L.LeaveTimeEnd = StringToHour(item.LeaveTimeEnd);
                L.LeaveDays = int.Parse(item.LeaveDays);
                L.LeaveMinuts = SaatiLengh(item.LeaveMinuts);
                L.RegDate = StringToHour(item.RegTime);
                L.RegDate = item.RegDate.Old6digToMiladi().Date;
                L.RegistrarCode = Int32.Parse(item.RegistrarCode);
                L.HijriYear = L.LeaveDayStart.GetHijriYear();
                var t = IsOk(item.RegTime);
                if (L.DLT == 0 && t == false || L.LT == 0)
                {
                    L.Calculate = false;

                    L.IsActive = false;
                }
                else { L.Calculate = true; L.IsActive = true; }
                db.Leaves.Add(L);
                db.SaveChangesAsync();
            }
            //db.SaveChanges();
            return RedirectToAction("index");
     

 

 

 



احمد کنعانی
پاسخ ها (2)

بنده یک سرویس نوشتم برای تماس با ما

using Application.Interfaces.Contexts;
using AutoMapper;
using Common.Dto;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Application.Services.ContactUs
{
    public interface IContactUsService
    {
         ResultDto<RequestContactUsDto> Execute(RequestContactUsDto requestContactUsDto);
    }

    public class ContactUsService : IContactUsService
    {
        public IDataBaseContext _Context;
        public IMapper _Mapper;
        public ContactUsService(IDataBaseContext Context, IMapper Mapper)
        {
            _Context = Context;
            _Mapper = Mapper;
        }

        public ResultDto<RequestContactUsDto> Execute(RequestContactUsDto requestContactUsDto)
        {
            var model = _Mapper.Map<Domain.Contact.ContactUs>(requestContactUsDto);
            _Context.ContactUs.Add(model);
            _Context.SaveChanges();

            return new ResultDto<RequestContactUsDto>
            {
                IsSuccess = true,
                Message = $"موضوع {model.Subject}  با موفقیت در سیستم ثبت شد",
                Data = _Mapper.Map<RequestContactUsDto>(model)
            };
        }
    }

    public class RequestContactUsDto
    {
        public string Name { get; set; }
        public string Email { get; set; }
        public string PhoneNumber { get; set; }
        public string Subject { get; set; }
        public string Description { get; set; }
    }

}

 

حال در stratup  پروژه اضافه کردم

   #region Mapper
            services.AddAutoMapper(typeof(ContactUsMappingProfile));
            #endregion
            #region Add Services
            services.AddScoped<IContactUsService, ContactUsService>();
            #endregion

 

اما در زمان اجرا با این خطا رو به رو میشم

System.AggregateException: 'Some services are not able to be constructed (Error while validating the service descriptor 'ServiceType: Application.Services.ContactUs.IContactUsService Lifetime: Scoped ImplementationType: Application.Services.ContactUs.ContactUsService': Unable to resolve service for type 'Application.Interfaces.Contexts.IDataBaseContext' while attempting to activate 'Application.Services.ContactUs.ContactUsService'.)'
 



محمد منیعات
پاسخ ها (2)

سلام مهندس در فصل وب ای پی آی قسمت هجدهم ما ایشویر و آودینس(issuer,audienc) رو برای شرکت هایی که بهشون خدمات میدیدم دستی وارد میکردیم تو اپ ستین و هم داخل استارت آپ یعنی ما تو پروژه های واقعی هم باید برای شرکت هایی که بهشون خدمات میدیم باید به این شکل تو استارت آپ و اپ ستینگ ادشون کنیم؟


درود و عرض ادب

اگر بخواهیم در صورت قطع بودن ارتباط با دیتابیس کاربر به صفحه مشخصی هدایت بشه کجا باید این کار را انجام دهیم



حسین کرجی
پاسخ ها (5)

با سلام
بنده طبق آموزش های دوره ستارگان,  چندین endpoint دارم مانند EndPoint.Admin  و  EndPoint.WebSite
حالا سوال اینجاست که من میخوام از داخل سایت کاربر رو بعد از احراز هویت به داخل پنل ادمین هدایت کنم
پس باید یک لینک از داخل EndPoint.WebSite  به EndPoint.Admin بدم
ولی خب چطوری؟
در تگ a چگونه بین دوتا اندپوینت یک لینک بدم؟


سلام 

زمانی که add-migration  یا  update-database  میزنم 

 Collection was modified after the enumerator was instantiated.

این error رو میده


سلام در قسمت create user در دوره core مقدماتی زمانی که میخاهم Role های user  را با استفاده از select list  و view bag  به view  منتقل کنم ارور  Null  میدهد در صورتی که هم در دیتابیس رکورد ها وجود دارند و هم زمانی که role ها را از دیتا بیس واکشی می کنم با استفاده از برکپوینت متوجه شدم درست واکشی کردم و role  ها برایم لیست می شود.

خدس میزنم مشکلم از طرف view  باشد

کدهای view//
 <div class="col-xl-4 col-lg-6 col-md-12 mb-1">
                                            <fieldset class="form-group">
                                                <label for="basicSelect">نقش</label>
                                                <select class="form-control" id="Role" name="Role" asp-items="@ViewBag.Roles">
                                                </select>
                                                <p><small class="text-muted">سطح دسترسی کاربر مورد نظر را تعیین کنید</small></p>

                                            </fieldset>
                                        </div>





کدهای controller//

 public IActionResult CreateUser()
        {
            ViewBag.Roles = new SelectList(_rolesService.Execute().Data, "Id", "Name");
            return View();




کدهای کلاس //
  public ResultDto<List<RolesDto>> Execute()
        {
            var roles = _context.Roles.ToList().Select(p => new RolesDto
            {
                RoleId = p.RoleId,
                Name = p.RoleTittle
            }).ToList();

            return new ResultDto<List<RolesDto>>()
            {
                Data = roles,
                IsSuccess = true,
                Message = "",
            };


        

 



ندا سیفی
پاسخ ها (1)

سلام 

من دوره .net core رو مشاهده کردم و توی قسمت پروژه عملی به مشکل خوردم

من آخرین نسخه ویژوال استودیو(6.9.6) و ورژن 4.8.04084 و همچنین .net5 رو نصب کردم

الان نمیدونم کدوم ورژن از EFCore رو باید توی لایه های مختلف نصب کنم

مسئله بعدی اینکه زمانی که میخوام کلاس DataBaseConext ام رو از اینترفیس IDataBaseContext ارث بری کنم نمیشناسه وerror میده حتی وقتی که لایه Application رو using میکنم



نوراله قرنجیک
پاسخ ها (1)

سلام 

استفاده از الگوي CQRS در دات نت کور خوبه يا خير؟



جواد پورگلزار
پاسخ ها (0)
$.ajax({
                type: 'POST',
                url: '/cart/ChangeUpdateCartDeetial',
                data: { value:@Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(EditList))},
                success: function (response) {
                    if (response.success) {
                        alert(response.responseText);
                    } else {
                        // DoSomethingElse()
                        alert(response.responseText);
                    }
                },
                error: function (response) {
                    alert("error!" + response.respo);  // 
                }

            });

با سلام

من یه سبد خرید دارم که آپدیت میشه تعداد لیست جنریک که به صورت jsonمیفرستم برای صفحه cart اگه بالای 140 تا بشه null ارسال میشه به نظر شما چه کاری باید انجام بدم که بیشتر بتونم ارسال کنم؟

 

 



محمد منیعات
پاسخ ها (5)

سلاممن کاربر رو ثبت میکنم و ایمیل رو همراه با لینک براش ارسال میکنم ولی وقتی میاد سمت کانفریم ایمیل سر متود ConfirmEmailAsync ارور اینولید توکن رو میده 

 


;