internal async Task <OrderBaseModel> AddInformationFromListsToModel(OrderBaseModel model, int orderGroupId)
        {
            model.AttachmentListModel = await AttachmentListModel.GetReadOnlyModelFromList(_dbContext.Attachments.GetAttachmentsForOrderGroup(orderGroupId), "Bifogade filer");

            OrderCompetenceRequirement competenceFirst  = null;
            OrderCompetenceRequirement competenceSecond = null;
            var competenceRequirements = _dbContext.OrderGroupCompetenceRequirements.GetOrderedCompetenceRequirementsForOrderGroup(orderGroupId).Select(r => new OrderCompetenceRequirement
            {
                CompetenceLevel = r.CompetenceLevel,
                Rank            = r.Rank,
            }).ToList();

            competenceRequirements = competenceRequirements.OrderBy(r => r.Rank).ToList();
            competenceFirst        = competenceRequirements.Count > 0 ? competenceRequirements[0] : null;
            competenceSecond       = competenceRequirements.Count > 1 ? competenceRequirements[1] : null;
            model.RequestedCompetenceLevelFirst  = competenceFirst?.CompetenceLevel;
            model.RequestedCompetenceLevelSecond = competenceSecond?.CompetenceLevel;

            model.OrderRequirements = _dbContext.OrderGroupRequirements.GetRequirementsForOrderGroup(orderGroupId).Select(r => new OrderRequirementModel
            {
                OrderRequirementId     = r.OrderGroupRequirementId,
                RequirementDescription = r.Description,
                RequirementIsRequired  = r.IsRequired,
                RequirementType        = r.RequirementType
            }).ToList();
            return(model);
        }
        private async Task <OrderBaseModel> GetOrderBaseLists(OrderBaseModel model, IEnumerable <OrderInterpreterLocation> interpreterLocations, int orderId)
        {
            //Locations
            model.RankedInterpreterLocationFirst              = interpreterLocations.Single(l => l.Rank == 1)?.InterpreterLocation;
            model.RankedInterpreterLocationSecond             = interpreterLocations.SingleOrDefault(l => l.Rank == 2)?.InterpreterLocation;
            model.RankedInterpreterLocationThird              = interpreterLocations.SingleOrDefault(l => l.Rank == 3)?.InterpreterLocation;
            model.RankedInterpreterLocationFirstAddressModel  = OrderBaseModel.GetInterpreterLocation(interpreterLocations.Single(l => l.Rank == 1));
            model.RankedInterpreterLocationSecondAddressModel = OrderBaseModel.GetInterpreterLocation(interpreterLocations.SingleOrDefault(l => l.Rank == 2));
            model.RankedInterpreterLocationThirdAddressModel  = OrderBaseModel.GetInterpreterLocation(interpreterLocations.SingleOrDefault(l => l.Rank == 3));

            //Competences
            List <CompetenceAndSpecialistLevel> competenceRequirements = await _dbContext.OrderCompetenceRequirements
                                                                         .GetOrderedCompetenceRequirementsForOrder(orderId)
                                                                         .Select(r => r.CompetenceLevel)
                                                                         .ToListAsync();

            model.RequestedCompetenceLevelFirst  = competenceRequirements.Any() ? (CompetenceAndSpecialistLevel?)competenceRequirements.FirstOrDefault() : null;
            model.RequestedCompetenceLevelSecond = competenceRequirements.Count > 1 ? (CompetenceAndSpecialistLevel?)competenceRequirements[1] : null;
            model.OrderRequirements = await OrderRequirementModel.GetFromList(_dbContext.OrderRequirements.GetRequirementsForOrder(orderId));

            return(model);
        }
        public ReturnViewModel Create(OrderBaseModel model)
        {
            var result = new ReturnViewModel();
            var entity = new Order
            {
                UserId    = model.UserId,
                ProductId = model.ProductId,
                Amount    = model.Amount,
                AddedOn   = DateTime.Now
            };

            try
            {
                _repository.Create(entity);
            }
            catch (Exception ex)
            {
                result.Message = ex.Message;
                return(result);
            }
            result.Message   = entity.Id.ToString();
            result.IsSuccess = true;
            return(result);
        }