Esempio n. 1
0
        public async Task <IActionResult> Add(TenderViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = await _userManager.GetUserAsync(User);

                Console.WriteLine(user);
                Tender newTender = new Tender
                {
                    user_id       = user,
                    Tender_name   = model.Tender_name,
                    Base_price    = model.Base_price,
                    Description   = model.Description,
                    company_id    = user,
                    Ending_Date   = model.Ending_Date,
                    Starting_Date = model.Starting_Date,
                    status        = model.status,
                    assigned      = false,
                };
                _tenderRepo.Add(newTender);
                return(RedirectToAction("Tender"));
            }
            Console.WriteLine("Error!!");
            return(View());
        }
        public async Task <IActionResult> Create(int?refid)
        {
            ViewData["Title"] = $"{_appSettings.Value.AppTitle}-{Subtitle.TenderCreate}";
            var ternderViewModel = new TenderViewModel();

            ternderViewModel.RefId = 0;

            if (refid != null)
            {
                var tender = await _tenderService.GetTenderById(refid.Value);

                ternderViewModel               = MapToTenderViewMododel(tender);
                ternderViewModel.RefId         = refid.Value;
                ternderViewModel.Id            = 0;
                ternderViewModel.TenderTitle   = string.Empty;
                ternderViewModel.DescOfWork    = string.Empty;
                ternderViewModel.EstimatedCost = 0;
                ternderViewModel.CostOfBOQ     = 0;
                ternderViewModel.EMD           = 0;
            }
            ternderViewModel = await FillTenderListItems(ternderViewModel);

            ternderViewModel.TenderType  = "Open";
            ternderViewModel.Currency    = Currency.INR;
            ternderViewModel.ValueFactor = _appSettings.Value.DefaultValueIn;


            return(View(ternderViewModel));
        }
        public JsonResult GetTender(int tenderId)
        {
            using (var ctx = new CoronaSupportPlatformDbContext())
            {
                // Get the tender
                var tender = ctx.Tenders.Include("Properties").Include("Items").Include("Organization").FirstOrDefault(t => t.TenderId == tenderId);

                // Get the products
                var products = ctx.Products.ToList();

                var model = new TenderViewModel()
                {
                    Products         = products,
                    TenderId         = tender.TenderId,
                    OrganizationId   = tender.OrganizationId,
                    Items            = tender.Items,
                    LongDescription  = tender.LongDescription,
                    ShortDescription = tender.ShortDescription,
                    RefNumber        = tender.RefNumber,
                    UserId           = tender.UserId,
                    Organization     = tender.Organization,
                    State            = tender.State,
                };

                // Create the partial
                var partial = ViewToString("CS", "~/Views/Tenders/Details.cshtml", model);

                return(Json(new CSPartialResponse()
                {
                    ReturnCode = 200,
                    Html = partial
                }, JsonRequestBehavior.AllowGet));
            }
        }
        private async Task <TenderViewModel> FillTenderListItems(TenderViewModel tenderViewModel)
        {
            tenderViewModel.States = await _stateSerice.GetStateSelectList();

            tenderViewModel.DefaultSelSTate = _appSettings.Value.DefaultSelState;
            tenderViewModel.Districts       = await _districtSerice.GetDistrictSelectList();

            tenderViewModel.Divisions = await _divisionService.GetDivisionSelectList(string.Empty);

            tenderViewModel.TenderTypes = _tenderService.GetTenderTypes();
            return(tenderViewModel);
        }
Esempio n. 5
0
        public ViewResult Edit(int id)
        {
            Tender          t         = _tenderRepo.GetTender(id);
            TenderViewModel newTender = new TenderViewModel
            {
                id            = t.Tender_Id,
                Base_price    = t.Base_price,
                Description   = t.Description,
                Ending_Date   = t.Ending_Date,
                Starting_Date = t.Starting_Date,
                status        = t.status,
            };

            return(View(newTender));
        }
Esempio n. 6
0
 public IActionResult Edit(TenderViewModel model)
 {
     if (ModelState.IsValid)
     {
         Tender tender = _tenderRepo.GetTender(model.id);
         tender.Starting_Date = model.Starting_Date;
         tender.Ending_Date   = model.Ending_Date;
         tender.status        = model.status;
         tender.Description   = model.Description;
         tender.Base_price    = model.Base_price;
         Tender updatedTender = _tenderRepo.Update(tender);
         return(RedirectToAction("index"));
     }
     return(View(model));
 }
Esempio n. 7
0
        public async Task <IActionResult> Tender(int id)
        {
            var tender = await _context.Tenders
                         .Include(t => t.Author)
                         .SingleOrDefaultAsync(t => t.Id == id);

            var responces = await _context.TenderResponces
                            .Include(r => r.Author)
                            .Where(r => r.Tender.Id == tender.Id)
                            .ToListAsync();

            var prizesIds = _context.PrizeEntityRelations
                            .Where(pr => pr.EntityType == "Tender" &&
                                   pr.EntityId == tender.Id.ToString())
                            .Select(pr => pr.PrizeId);

            var prizes = _context.Prizes
                         .Where(p => prizesIds.Contains(p.Id))
                         .ToList();

            foreach (var r in responces)
            {
                r.likes = _context.Likes
                          .Count(l => l.TenderResponceId == r.Id);
                r.likedByMe = _context.Likes
                              .Count(l => l.TenderResponceId == r.Id &&
                                     l.ApplicationUserId == Me.Id) != 0;

                var rPrizesIds = _context.PrizeEntityRelations
                                 .Where(pr => pr.EntityType == "TenderResponce" &&
                                        pr.EntityId == r.Id.ToString())
                                 .Select(pr => pr.PrizeId);

                r.prizes = _context.Prizes
                           .Where(p => rPrizesIds.Contains(p.Id))
                           .ToList();
            }

            var model = new TenderViewModel()
            {
                Tender    = tender,
                Responces = responces,
                Me        = this.Me,
                Prizes    = prizes
            };

            return(View(model));
        }
Esempio n. 8
0
        public ActionResult Edit(TenderViewModel tender)
        {
            var newTender = context.Tenders.Include("TenderItems.Product").Include("Customer").Where(t => t.Id.Equals(tender.TenderId)).FirstOrDefault();

            newTender.CarriageCost               = tender.CarriageCost;
            newTender.Comments                   = tender.Comments;
            newTender.DateTime                   = tender.DateTime;
            newTender.GuarantyCost               = tender.GuarantyCost;
            newTender.InspectionCost             = tender.InspectionCost;
            newTender.ParticipatingGuarantyPrice = tender.ParticipatingGuarantyPrice;
            newTender.Title                = tender.TenderTitle;
            newTender.ReasonForFailure     = tender.ReasonForFailure;
            newTender.PredictionPrice      = tender.PredictionPrice;
            newTender.IsSuccessful         = tender.IsSuccessful;
            context.Entry(newTender).State = System.Data.Entity.EntityState.Modified;
            context.SaveChanges();
            return(RedirectToAction("Index", new { area = "Commerce", controller = "Tenders" }));
        }
        public async Task <IActionResult> Edit(int id, IList <IFormFile> formFile, TenderViewModel tenderViewModel)
        {
            tenderViewModel = await FillTenderListItems(tenderViewModel);

            if (!ModelState.IsValid)
            {
                string message = "Please enter required data.";
                TempData.Put("notify", new StatusResult()
                {
                    Status = StatusText.Error.ToString(), StatusDetail = message
                });
                ModelState.AddModelError("", message);
                return(View(tenderViewModel));
            }
            else
            {
                var tender = await MaptoTender(formFile, tenderViewModel);

                tender.ModificationDate = DateTime.Now;
                tender.ModifiedBy       = _session.GetString("UserId");

                var result = await _tenderService.UpdateTender(id, tender);

                TempData.Put("notify", result);
                if (result.Status == StatusText.Successful.ToString())
                {
                    // return to List Mode
                    //if (result.Data.Length > 0)
                    //{
                    //    var resultObj = JsonConvert.DeserializeObject<Tender>(result.Data);
                    return(RedirectToAction("Index2", "Tenders"));
                    //    return RedirectToAction("Index2", "Tenders");
                    //}
                }
                else if (result.Status == StatusText.Error.ToString())
                {
                    ModelState.AddModelError("", result.StatusDetail);
                }
            }

            return(View(tenderViewModel));
        }
Esempio n. 10
0
        public async Task <IActionResult> AddEdit(int Id)
        {
            await SetUserData();

            var model = new TenderViewModel()
            {
                StartDate = DateTime.UtcNow,
                EndDate   = DateTime.UtcNow,
            };

            if (Id > 0)
            {
                var rec = _context.Tenders.Where(e => e.Id == Id).Select(k => new TenderViewModel()
                {
                    Id          = k.Id,
                    EndDate     = k.EndDate,
                    TenderDesc  = k.TenderDesc,
                    FormDocName = _context.Documents.Where(d => d.Id == k.FormDocumentId).Select(m => m.FileName).FirstOrDefault(),
                    PostDocName = _context.Documents.Where(d => d.Id == k.DocumentId).Select(m => m.FileName).FirstOrDefault(),


                    StartDate  = k.StarDate,
                    PostDocId  = k.DocumentId ?? 0,
                    FormDocId  = k.FormDocumentId ?? 0,
                    FormDocURL = _context.Documents.Where(d => d.Id == k.FormDocumentId).Select(m => m.URL).FirstOrDefault(),
                    PostDocURL = _context.Documents.Where(d => d.Id == k.DocumentId).Select(m => m.URL).FirstOrDefault(),
                }).FirstOrDefault();

                if (model != null)
                {
                    model = rec;
                }
            }

            return(View(model));
        }
Esempio n. 11
0
        public ActionResult New()
        {
            // Create the model
            var model = new TenderViewModel()
            {
                CurrentUser         = CurrentUser,
                CurrentOrganization = CurrentOrganization,
            };

            using (var ctx = new CoronaSupportPlatformDbContext())
            {
                // Get the products
                var products = ctx.Products.ToList();
                model.Products = products;

                // Get the organization Id
                var organizationId = CurrentUser.Roles.FirstOrDefault().OrganizationId;

                // Get the organization
                var organization = ctx.Organizations.FirstOrDefault(o => o.OrganizationId == organizationId);
                model.Organization = organization;
            }

            #region [ Breadcrumb ]

            var breadcrumb = new BreadcrumbViewModel();
            breadcrumb.PageName = "Yeni İhtiyaç";
            breadcrumb.Items.Add("Anasayfa", "/");
            breadcrumb.Items.Add("İhtiyaç Listesi", "/Tenders");
            breadcrumb.Items.Add("Yeni İhtiyaç", "");
            TempData["Breadcrumb"] = breadcrumb;

            #endregion

            return(View(model));
        }
Esempio n. 12
0
        public async Task <IActionResult> Create(IList <IFormFile> formFile, TenderViewModel tenderViewModel)
        {
            tenderViewModel = await FillTenderListItems(tenderViewModel);

            if (!ModelState.IsValid)
            {
                string message = "Please enter required data.";
                TempData.Put("notify", new StatusResult()
                {
                    Status = StatusText.Error.ToString(), StatusDetail = message
                });
                ModelState.AddModelError("", message);
                return(View(tenderViewModel));
            }
            else
            {
                var tender = await MaptoTender(formFile, tenderViewModel);

                // Get older tender for refid
                // if that tender has documents associate it.
                if (tenderViewModel.RefId != 0)
                {
                    var tenderRef = await _tenderService.GetTenderById(tenderViewModel.RefId);

                    if (tenderRef.TenderDocs != null)
                    {
                        var tenderdocs = new List <TenderDoc>();
                        foreach (var tdRef in tenderRef.TenderDocs)
                        {
                            tenderdocs.Add(new TenderDoc()
                            {
                                Id      = 0,
                                DocName = tdRef.DocName,
                                DocPath = tdRef.DocPath,
                                DocFor  = tdRef.DocFor
                            });
                        }

                        tender.TenderDocs = tenderdocs;
                    }
                }

                tender.IsActive         = IsActive.Y;
                tender.CreationDate     = DateTime.Now;
                tender.ModificationDate = DateTime.Now;
                tender.CreatedBy        = _session.GetString("UserId");
                tender.ModifiedBy       = _session.GetString("UserId");

                var result = await _tenderService.SaveNewTender(tender);

                TempData.Put("notify", result);
                if (result.Status == StatusText.Successful.ToString())
                {
                    // return to List Mode
                    if (result.Data.Length > 0)
                    {
                        var resultObj = JsonConvert.DeserializeObject <Tender>(result.Data);
                        //return RedirectToAction("Edit", "Tenders", new { id = resultObj.Id});
                        return(RedirectToAction("Index2", "Tenders"));
                    }
                }
                else if (result.Status == StatusText.Error.ToString())
                {
                    ModelState.AddModelError("", result.StatusDetail);
                }
            }
            return(View(tenderViewModel));
        }
        private void NewTenderCommand_Execute()
        {
            var tenderViewModel = new TenderViewModel(Container, SelectedProjectItem.Project);

            Container.Resolve <IDialogService>().ShowDialog(tenderViewModel);
        }
Esempio n. 14
0
 private void TenderLoans_OnClosing(object sender, CancelEventArgs e)
 {
     TenderViewModel.CleanUp();
 }
Esempio n. 15
0
        public async Task <IActionResult> Save(TenderViewModel model)
        {
            //await SetUserData();
            var user = await _userManager.GetUserAsync(User);

            if (ModelState.IsValid)
            {
                using (var transaction = _context.Database.BeginTransaction())
                {
                    try
                    {
                        //upload.  1.)ToDo Check if both file's size is > that defined in settings table.
                        //         2.)Add add all model validations.
                        //         3.)Change buckets.
                        //         4.)Set ddl for priority and status. [Done]
                        //         5.)Handle error message. [Done]
                        //         6.)Delete older files. [Done]
                        //         7.)Manage file for edit case. [Done]


                        if (model.StartDate > model.EndDate)
                        {
                            throw new Exception("Start date must be less than end date.");
                        }


                        if (model.Id > 0)
                        {
                            var rec = _context.Tenders.Where(e => e.Id == model.Id).FirstOrDefault();
                            if (rec == null)
                            {
                                throw new Exception("Record not found.");
                            }
                            Document docRes  = null;
                            Document formRes = null;

                            Document file1Res = null;
                            Document file2Res = null;
                            //Upload files
                            if (model.PostDocument != null)
                            {
                                docRes = await _documentManager.Save(model.PostDocument, _amazonSettings.SliderBucketName);

                                if (docRes != null)
                                {
                                    docRes.DocumentCategory = Enums.DocumentCategory.TenderFile;
                                    docRes.CreatedBy        = user.Id;
                                    rec.DocumentId          = docRes != null ? docRes.Id : 0;
                                    if (rec.DocumentId == 0)
                                    {
                                        rec.DocumentId = null;
                                    }
                                }
                            }
                            if (model.FormDocument != null)
                            {
                                formRes = await _documentManager.Save(model.FormDocument, _amazonSettings.SliderBucketName);

                                if (formRes != null)
                                {
                                    formRes.DocumentCategory = Enums.DocumentCategory.TenderForm;
                                    formRes.CreatedBy        = user.Id;
                                    rec.FormDocumentId       = formRes != null ? formRes.Id : 0;
                                    if (rec.FormDocumentId == 0)
                                    {
                                        rec.FormDocumentId = null;
                                    }
                                }
                            }

                            if (model.File1 != null)
                            {
                                file1Res = await _documentManager.Save(model.File1, _amazonSettings.SliderBucketName);

                                if (file1Res != null)
                                {
                                    file1Res.DocumentCategory = Enums.DocumentCategory.TenderFile1;
                                    file1Res.CreatedBy        = user.Id;
                                    rec.File1Id = file1Res != null ? file1Res.Id : 0;
                                    if (rec.File1Id == 0)
                                    {
                                        rec.File1Id = null;
                                    }
                                }
                            }

                            if (model.File2 != null)
                            {
                                file2Res = await _documentManager.Save(model.File2, _amazonSettings.SliderBucketName);

                                if (file2Res != null)
                                {
                                    file2Res.DocumentCategory = Enums.DocumentCategory.TenderFile2;
                                    file2Res.CreatedBy        = user.Id;
                                    rec.File2Id = file2Res != null ? file2Res.Id : 0;
                                    if (rec.File2Id == 0)
                                    {
                                        rec.File2Id = null;
                                    }
                                }
                            }

                            rec.ModifiedBy = user.Id;
                            rec.ModifiedOn = DateTime.UtcNow;

                            rec.TenderDesc = model.TenderDesc;
                            rec.StarDate   = model.StartDate;
                            rec.EndDate    = model.EndDate;
                            //rec.PostName = model.PostName;
                            //rec.PRONo = model.PRONo;
                            _context.Update(rec);

                            _context.SaveChanges();
                            transaction.Commit();
                            return(RedirectToAction("Index"));
                        }
                        else
                        {
                            if (model.FormDocument != null && model.PostDocument != null && model.File1 != null && model.File2 != null)
                            {
                                //Upload files
                                var docRes = await _documentManager.Save(model.PostDocument, _amazonSettings.SliderBucketName);

                                var formRes = await _documentManager.Save(model.FormDocument, _amazonSettings.SliderBucketName);

                                var file1Res = await _documentManager.Save(model.File1, _amazonSettings.SliderBucketName);

                                var file2Res = await _documentManager.Save(model.File2, _amazonSettings.SliderBucketName);

                                if (docRes != null && formRes != null && file1Res != null && file2Res != null)
                                {
                                    docRes.DocumentCategory  = Enums.DocumentCategory.TenderFile;
                                    docRes.CreatedBy         = user.Id;
                                    formRes.DocumentCategory = Enums.DocumentCategory.TenderForm;
                                    formRes.CreatedBy        = user.Id;

                                    file1Res.DocumentCategory = Enums.DocumentCategory.TenderFile1;
                                    file1Res.CreatedBy        = user.Id;

                                    file2Res.DocumentCategory = Enums.DocumentCategory.TenderFile1;
                                    file2Res.CreatedBy        = user.Id;

                                    _context.Add(new Tender()
                                    {
                                        CreatedBy  = user.Id,
                                        CreatedOn  = DateTime.UtcNow,
                                        DocumentId = docRes.Id,
                                        EndDate    = model.EndDate,
                                        //PRONo = model.PRONo,
                                        StarDate       = model.StartDate,
                                        TenderDesc     = model.TenderDesc,
                                        FormDocumentId = formRes.Id,
                                        File1Id        = file1Res.Id,
                                        File2Id        = file2Res.Id,
                                        //Department = model.Department,
                                    });
                                    _context.SaveChanges();
                                    transaction.Commit();
                                    return(RedirectToAction("Index"));
                                }
                                else
                                {
                                    transaction.Rollback();
                                    return(View("AddEdit", model));
                                    //return Json(new { success = false, message = "Upload failed." });
                                }
                            }
                            else
                            {
                                ModelState.AddModelError("", "Please upload all the files.");
                            }
                        }
                    }
                    catch (Exception e)
                    {
                        transaction.Rollback();
                        ModelState.AddModelError("", e.Message);
                        return(View("AddEdit", model));
                        // return Json(new { success = false, message = e.Message });
                    }
                }
            }
            return(View("AddEdit", model));
        }
Esempio n. 16
0
        public ActionResult New(TenderViewModel model)
        {
            try
            {
                #region [ Load the create page data  ]

                using (var ctx = new CoronaSupportPlatformDbContext())
                {
                    // Get the products
                    var products = ctx.Products.ToList();
                    model.Products = products;

                    // Get the organization Id
                    var organizationId = CurrentUser.Roles.FirstOrDefault().OrganizationId;

                    // Get the organization
                    var organization = ctx.Organizations.FirstOrDefault(o => o.OrganizationId == organizationId);
                    model.Organization = organization;
                }

                #endregion

                #region [ Breadcrumb ]

                var breadcrumb = new BreadcrumbViewModel();
                breadcrumb.PageName = "Yeni İhtiyaç";
                breadcrumb.Items.Add("Anasayfa", "/");
                breadcrumb.Items.Add("İhtiyaç Listesi", "/Tenders");
                breadcrumb.Items.Add("Yeni İhtiyaç", "");
                TempData["Breadcrumb"] = breadcrumb;

                #endregion

                if (ModelState.IsValid)
                {
                    using (var ctx = new CoronaSupportPlatformDbContext())
                    {
                        // Create new tender object
                        var tender = new Tender()
                        {
                            OrganizationId   = model.Organization.OrganizationId,
                            ShortDescription = model.ShortDescription,
                            LongDescription  = model.LongDescription,
                            UserId           = CurrentUser.Id,
                            Created          = DateTime.UtcNow,
                            State            = TenderState.New,
                            Status           = Common.EntityStatus.Active,
                        };

                        // Get the quantities
                        var quantityList = Request.Form["ProductQuantities"].Split(',');

                        // Create the tender items
                        var tenderItems = new List <TenderItem>();

                        for (int i = 0; i < model.Products.Count; i++)
                        {
                            // Check for quantity
                            var quantity = Convert.ToInt32(quantityList[i]);

                            // Check for a positive quantity
                            if (quantity == 0)
                            {
                                continue;
                            }

                            // Get the current product
                            var product = model.Products[i];

                            tenderItems.Add(new TenderItem()
                            {
                                ProductId = product.ProductId,
                                Quantity  = quantity,
                                State     = TenderItemState.New,
                                Created   = DateTime.UtcNow
                            });
                        }

                        // Add the tender items to tender
                        tender.Items = tenderItems;

                        // Add the tender
                        ctx.Tenders.Add(tender);
                        ctx.SaveChanges();
                    }
                }
                else
                {
                    // Add model state errors
                    model.Errors.AddRange(ModelState.SelectMany(s => s.Value.Errors.Select(e => e.ErrorMessage)));

                    return(View(model));
                }
            }
            catch (Exception ex)
            {
                LogService.Debug(ex, $"There is an error while creating tender");

                return(View(model));
            }

            return(Redirect("/Tenders"));
        }
Esempio n. 17
0
        private TenderViewModel ConvertToTenderViewModel(Tender tender)
        {
            TenderViewModel tenderViewModel = new TenderViewModel
            {
                TenderId      = tender.Id,
                CustomerId    = tender.CustomerId.ToString(),
                CustomerName  = tender.Customer.Name,
                Address       = tender.Customer.InquiryAddress,
                ContactNumber = tender.Customer.InquiryTel,

                CarriageCost               = tender.CarriageCost,
                GuarantyCost               = tender.GuarantyCost,
                InspectionCost             = tender.InspectionCost,
                ParticipatingGuarantyPrice = tender.ParticipatingGuarantyPrice,
                PredictionPrice            = tender.PredictionPrice,
                TotalWeight = tender.TotalWeight,

                Comments         = tender.Comments,
                IsSuccessful     = tender.IsSuccessful,
                ReasonForFailure = tender.ReasonForFailure,
                DateTime         = tender.DateTime,

                FinalPrice  = tender.FinalPrice,
                TenderTitle = tender.Title
            };

            List <TenderPrice> tenderPrices = new List <TenderPrice>();

            tenderPrices.Add(new TenderPrice
            {
                IsOurCompany    = true,
                TenderId        = tender.Id,
                ParticipantName = "نشاگستر پردیس",
                Place           = "قزوین",
                TotalPrice      = tender.FinalPrice,
                TenderTitle     = tender.Title,
                TotalWeight     = tender.TotalWeight,
            });



            if (tender.RivalPrices != null)
            {
                tender.RivalPrices = tender.RivalPrices.OrderBy(t => t.Price).ToList();
                foreach (var rivalPrice in tender.RivalPrices)
                {
                    TenderPrice tenderPrice = new TenderPrice
                    {
                        Id              = rivalPrice.Id,
                        IsOurCompany    = false,
                        ParticipantName = rivalPrice.Rival.Name,
                        TenderId        = tender.Id,
                        TenderTitle     = tender.Title,
                        TotalPrice      = rivalPrice.Price,
                        TotalWeight     = tender.TotalWeight,
                        Place           = rivalPrice.Rival.City,
                    };

                    tenderPrices.Add(tenderPrice);
                }
            }

            tenderViewModel.TenderPrices = tenderPrices.OrderBy(t => t.TotalPrice).ToList();
            tenderViewModel.TenderItems  = tender.TenderItems;

            return(tenderViewModel);
        }
Esempio n. 18
0
        private async Task <Tender> MaptoTender(IList <IFormFile> formFile, TenderViewModel tenderViewModel)
        {
            if (tenderViewModel == null)
            {
                return(new Tender());
            }

            var tenderDocs = new List <TenderDoc>();

            if (tenderViewModel.TenderDocs != null)
            {
                foreach (var tvmd in tenderViewModel.TenderDocs)
                {
                    tenderDocs.Add(new TenderDoc()
                    {
                        Id      = tvmd.Id,
                        DocName = tvmd.DocName,
                        DocPath = tvmd.DocPath,
                        DocFor  = tvmd.DocFor
                    });
                }
            }


            if (!string.IsNullOrEmpty(tenderViewModel.TenderDocument))
            {
                string fileName    = tenderViewModel.TenderDocument;
                string nitFilePath = string.Empty;
                string path        = string.Empty;
                foreach (var file in formFile)
                {
                    if (file.Length > 0)
                    {
                        path = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", _appSettings.Value.NitFilePath);
                        if (!Directory.Exists(path))
                        {
                            Directory.CreateDirectory(path);
                        }
                        nitFilePath = Path.Combine(path, fileName);
                        using (var stream = new FileStream(nitFilePath, FileMode.Create))
                        {
                            await file.CopyToAsync(stream);
                        }
                    }
                }

                tenderDocs.Add(new TenderDoc()
                {
                    DocName = fileName,
                    DocPath = path,
                    DocFor  = tenderViewModel.ParentTenderId == 0 ? DocFor.NIT : DocFor.Corrigendum
                });
            }


            return(new Tender()
            {
                Id = tenderViewModel.Id,
                PublishOrLive = tenderViewModel.PublishOrLive,
                NIT = tenderViewModel.NIT,
                TenderRef = tenderViewModel.TenderRef,
                WorkNo = tenderViewModel.WorkNo,
                TenderType = tenderViewModel.TenderType,
                TenderTitle = tenderViewModel.TenderTitle,
                DescOfWork = tenderViewModel.DescOfWork,
                Department = tenderViewModel.Department,
                Organisation = tenderViewModel.Organisation,
                //TenderDocument = tenderViewModel.TenderDocument,
                TenderDocs = tenderDocs,
                TenderRefSiteAddress = tenderViewModel.TenderRefSiteAddress,
                BidOpeningDate = tenderViewModel.BidOpeningDate.Value,
                BidSubmissionStDate = tenderViewModel.BidSubmissionStDate,
                BidSubmissionEnDate = tenderViewModel.BidSubmissionEnDate.Value,
                CostOfBOQ = tenderViewModel.CostOfBOQ,

                COT = tenderViewModel.COT,
                EMD = tenderViewModel.EMD,
                //EMDPaymentOptions = tenderViewModel.EMDPaymentOptions,
                EMDPaymentOption = tenderViewModel.EMDPaymentOption,
                EMDPayableAt = tenderViewModel.EMDPayableAt,
                Region = tenderViewModel.Region,
                EstimatedCost = tenderViewModel.EstimatedCost,
                Currency = tenderViewModel.Currency,
                District = tenderViewModel.District,
                Division = tenderViewModel.SelDivisions != null?string.Join(",", tenderViewModel.SelDivisions) : "",
                               DocumentDownloadStDate = tenderViewModel.DocumentDownloadStDate,
                               DocumentDownloadEdDate = tenderViewModel.DocumentDownloadEdDate,
                               ePublishDate = tenderViewModel.ePublishDate,
                               UnEmployedEng = tenderViewModel.UnEmployedEng,
                               BankCertificate = tenderViewModel.BankCertificate,
                               IsActive = tenderViewModel.IsActive,
                               ParentTenderId = tenderViewModel.ParentTenderId,
                               PaymentOption = tenderViewModel.PaymentOption,
                               PayableAt = tenderViewModel.PayableAt,
                               CreatedBy = tenderViewModel.CreatedBy,
                               ModifiedBy = tenderViewModel.ModifiedBy,
                               CreationDate = tenderViewModel.CreationDate,
                               ModificationDate = tenderViewModel.ModificationDate,
                               ValueFactor = tenderViewModel.ValueFactor
            });
        }
Esempio n. 19
0
        //[ActivityLogger(ActivityName = "ثبت", ModelNameBeingOperated = "مناقصه")]
        public JsonResult Create(TenderViewModel tender)
        {
            var  customer = context.Customers.Where(c => c.Name.Equals(tender.CustomerName)).FirstOrDefault();
            Guid customerId;

            // if customer is null means we don't have the same user in database and hence the user is new
            if (customer == null)
            {
                customerId = Guid.NewGuid();
                context.Customers.Add(new DAL.DataModel.CommerceRelated.CustomersRelated.Customer
                {
                    Id             = customerId,
                    Name           = tender.CustomerName,
                    InquiryTel     = tender.ContactNumber,
                    InquiryAddress = tender.Address
                });
                context.SaveChanges();
            }
            // if customer name is present in the database we just update the value of tel and address to make sure they are updated if have been changed.
            else
            {
                customerId                    = customer.Id;
                customer.InquiryTel           = tender.ContactNumber;
                customer.InquiryAddress       = tender.Address;
                context.Entry(customer).State = System.Data.Entity.EntityState.Modified;
                context.SaveChanges();
            }

            // so far the customer values has been handled and added or modified in the database now it's time to add customer information, datetime and id into inquiry

            string[] datetimeArray = tender.DateTime.Split('/');

            Tender newTender = new Tender();

            newTender.Id                         = Guid.NewGuid();
            newTender.CustomerId                 = customerId;
            newTender.DateTime                   = new PersianDateTime(Int32.Parse(datetimeArray[0]), Int32.Parse(datetimeArray[1]), Int32.Parse(datetimeArray[2])).ToString().Substring(0, 10);
            newTender.Comments                   = tender.Comments;
            newTender.CarriageCost               = tender.CarriageCost;
            newTender.InspectionCost             = tender.InspectionCost;
            newTender.GuarantyCost               = tender.GuarantyCost;
            newTender.PredictionPrice            = tender.PredictionPrice;
            newTender.ParticipatingGuarantyPrice = tender.ParticipatingGuarantyPrice;
            newTender.Title                      = tender.TenderTitle;

            // now it's time to add inquiry information into inquiry items
            newTender.TenderItems = tender.TenderItems;
            foreach (TenderItem item in newTender.TenderItems)
            {
                item.Id       = Guid.NewGuid();
                item.TenderId = newTender.Id;
            }

            context.Tenders.Add(newTender);
            context.SaveChanges();
            ViewBag.ModelOperatedId = newTender.Id.ToString();


            // we return return url in json because in ajax success callback function it's been used in windows.location method
            return(Json(Url.Action("Index", "Tenders", new { area = "Commerce" })));
        }
Esempio n. 20
0
        protected override void ExecuteMethod()
        {
            var tenderViewModel = new TenderViewModel(_container, _viewModel.Tenders.SelectedItem.Entity);

            _container.Resolve <IDialogService>().ShowDialog(tenderViewModel);
        }