public async Task <ActionResult> Create(PartnersCreateViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(Json(ModelState.ToDictionary()));
            }

            var partnerCreated = await _partnersManager.CreateAsync(model, User.Identity.GetUserId());

            return(Json(partnerCreated));
        }
        public async Task <ActionResult> CreateBroker(PartnersCreateViewModel model)
        {
            ModelState.Remove(nameof(model.PartnerTypeId));
            if (!ModelState.IsValid)
            {
                return(Json(ModelState.ToDictionary()));
            }

            model.PartnerTypeId = (await _partnersManager.GetPartnerType("брокер")).Id;

            var partnerCreated = await _partnersManager.CreateAsync(model, User.Identity.GetUserId());

            return(Json(partnerCreated));
        }
示例#3
0
        public async Task <PartnersListViewModel> CreateAsync(PartnersCreateViewModel model, string agentId)
        {
            if (string.IsNullOrEmpty(agentId))
            {
                throw new ArgumentException("Не е намерен брокерът, който създава Партньори!");
            }

            if (!await IsAdminOrAgent(agentId))
            {
                throw new NotAuthorizedUserException("Потребителят няма право на това действие! Само админи и брокери имат право да създават Партньори !");
            }

            if (await Exist(model.PhoneNumber))
            {
                throw new ArgumentException("Съществува партньор с този телефонен номер!");
            }

            if (!await IsPartnerTypeExisting(model.PartnerTypeId))
            {
                throw new ContentNotFoundException("Не съществува типът Партньор, който сте избрали!");
            }

            Partners colleague = new Partners
            {
                PartnerName        = model.PartnerName,
                PartnerCompanyName = model.PartnerCompanyName,
                CityId             = model.CityId,
                PhoneNumber        = model.PhoneNumber,
                Email = model.Email,
                SocialMediaAccount    = model.SocialMediaAccount,
                AdditionalInformation = model.AdditionalInformation,
                AgentIdCreator        = agentId,
                PartnerTypeId         = model.PartnerTypeId
            };

            dbContext.Partners.Add(colleague);
            await dbContext.SaveChangesAsync();

            return(await Get(agentId, colleague.Id));
        }