public static void Main()
    {
        House           casa       = new House("Strada Casei", 100000m);
        Apartment       apartament = new Apartment("Strada Blabla", 45000m);
        StudioApartment garsoniera = new StudioApartment("Strada 2", 25000m);

        Console.WriteLine("Agent's comission for listing in " + casa.Address + ": " + casa.AgentCommission);
        Console.WriteLine("Agent's comission for listing in " + apartament.Address + ": " + apartament.AgentCommission);
        Console.WriteLine("Agent's comission for listing in " + garsoniera.Address + ": " + garsoniera.AgentCommission);
    }
Пример #2
0
        static void Main(string[] args)
        {
            var          houseCalculator           = new HouseAgentCommission();
            var          apartmentCalculator       = new ApartmentAgentCommission();
            var          studioApartmentCalculator = new StudioApartmentAgentCommission();
            var          landCalculator            = new LandAgentCommission();
            PropertyType house           = new House();
            PropertyType apartment       = new Apartment();
            PropertyType studioApartment = new StudioApartment();
            PropertyType land            = new Land();

            Agency.PriceForPropetyType(house, "Calea Unirii, nr.80", 210000, houseCalculator);
            Agency.PriceForPropetyType(apartment, "Aleea Decebal, nr.3", 72000, apartmentCalculator);
            Agency.PriceForPropetyType(studioApartment, "Piata Victoriei, nr.6", 31500, studioApartmentCalculator);
            Agency.PriceForPropetyType1(land, 13216, 1200000, landCalculator);
        }
Пример #3
0
        public IActionResult Import(IFormFile file)
        {
            if (file == null)
            {
                return(NotFound());
            }

            if (file.Length < 0)
            {
                return(NotFound("cannot read file"));
            }

            var path = Path.GetTempFileName();

            using (var reader = new FileStream(path, FileMode.Create))
            {
                file.CopyTo(reader);
            }
            FileInfo fileInfo = new FileInfo(path);

            using (ExcelPackage package = new ExcelPackage(fileInfo))
            {
                ExcelWorksheet sheet = package.Workbook.Worksheets.First(e => true);

                int totalRows = sheet.Dimension.Rows;

                List <Contact.Class.Contact> contacts = new List <Contact.Class.Contact>();

                for (int i = 2; i < totalRows; i++)
                {
                    Contact.Class.Contact contact = new Contact.Class.Contact();

                    try
                    {
                        var name   = sheet.Cells[i, 1].Value.ToString();
                        var gender = sheet.Cells[i, 2].Value.ToString();
                        var phone  = sheet.Cells[i, 3].Value.ToString();
                        var dob    = sheet.Cells[i, 4].Value.ToString();
                        // var email = sheet.Cells[i, 5].Value.ToString();
                        // var avatar = sheet.Cells[i, 6].Value.ToString();
                        var cmnd           = sheet.Cells[i, 7].Value.ToString();
                        var authorizedDate = sheet.Cells[i, 8].Value.ToString();
                        var authorizedBy   = sheet.Cells[i, 9].Value.ToString();
                        // var job = sheet.Cells[i, 10].Value.ToString();
                        // var workPlace = sheet.Cells[i, 11].Value.ToString();
                        var contractNumber = sheet.Cells[i, 12].Value.ToString();
                        var productType    = sheet.Cells[i, 13].Value.ToString();
                        var quantity       = sheet.Cells[i, 14].Value.ToString();
                        var purpose        = sheet.Cells[i, 15].Value.ToString();
                        var priority       = sheet.Cells[i, 16].Value.ToString();
                        var sale           = sheet.Cells[i, 17].Value.ToString();
                        var deposit        = sheet.Cells[i, 18].Value.ToString();
                        var loan           = sheet.Cells[i, 19].Value.ToString();
                        var depositType    = sheet.Cells[i, 20].Value.ToString();
                        var direction      = sheet.Cells[i, 21].Value.ToString();
                        var view           = sheet.Cells[i, 22].Value.ToString();
                        var floor          = sheet.Cells[i, 23].Value.ToString();
                        var area           = sheet.Cells[i, 24].Value.ToString();
                        // var bookingTime = sheet.Cells[i, 25].Value.ToString();
                        // var depositeTime = sheet.Cells[i, 26].Value.ToString();
                        var address   = sheet.Cells[i, 27].Value.ToString();
                        var residence = sheet.Cells[i, 28].Value.ToString();
                        // var cmndFront = sheet.Cells[i, 29].Value.ToString();
                        // var cmndRear = sheet.Cells[i, 30].Value.ToString();
                        // var apartmentPhoto = sheet.Cells[i, 31].Value.ToString();
                        // var nationality = sheet.Cells[i, 32].Value.ToString();
                        // var withdraw = sheet.Cells[i, 33].Value.ToString();
                        // var wdDate = sheet.Cells[i, 34].Value.ToString();
                        // var wdType = sheet.Cells[i, 35].Value.ToString();
                        // var note = sheet.Cells[i, 36].Value.ToString();

                        if (name != null && phone != null && cmnd != null)
                        {
                            contact = _context.Contact.FirstOrDefault(e => e.FullName == name);
                            if (contact == null)
                            {
                                contact = new Contact.Class.Contact();
                            }
                            contact.FullName = name;
                            contact.Phone    = phone;
                            // contact.Email = email;

                            if (contact.Product == null)
                            {
                                contact.Product = new List <Product>();
                            }
                        }

                        if (cmnd != null && authorizedBy != null)
                        {
                            if (cmnd.Length == 9)
                            {
                                var identity = new LocalIdentityCard {
                                    Number         = cmnd,
                                    AuthorizedDate = DateTime.Parse(authorizedDate),
                                    AuthorizedBy   = authorizedBy,
                                    DOB            = DateTime.Parse(dob),
                                    Residence      = residence,
                                    // Photo = cmndFront + " " + cmndRear
                                };
                                contact.Identity = identity;
                            }
                            else
                            {
                                var identity = new Passport {
                                    Number         = cmnd,
                                    AuthorizedBy   = authorizedBy,
                                    AuthorizedDate = DateTime.Parse(authorizedDate),
                                    // Nationality = nationality,
                                    // Photo = cmndFront,
                                    DOB    = DateTime.Parse(dob),
                                    Gender = gender == "male" ? Contact.Enum.Gender.Male : Contact.Enum.Gender.Female
                                };
                                contact.Identity = identity;
                            }
                        }

                        if (productType != null)
                        {
                            switch (productType.ToLower())
                            {
                            case "s":
                                var studio = new StudioApartment(Convert.ToDouble(deposit), "Studio", direction, view, Convert.ToInt16(floor), Convert.ToDouble(area));
                                contact.Product.Add(studio);
                                break;

                            case "1":
                                var onebr = new OneBedroomApartment(Convert.ToDouble(deposit), "Studio", direction, view, Convert.ToInt16(floor), Convert.ToDouble(area));
                                contact.Product.Add(onebr);
                                break;

                            case "2":
                                var twobr = new TwoBedroomApartment(Convert.ToDouble(deposit), "Studio", direction, view, Convert.ToInt16(floor), Convert.ToDouble(area));
                                contact.Product.Add(twobr);
                                break;

                            case "2+":
                                var twobrp = new TwoBedroomPlusApartment(Convert.ToDouble(deposit), "Studio", direction, view, Convert.ToInt16(floor), Convert.ToDouble(area));
                                contact.Product.Add(twobrp);
                                break;

                            case "3":
                                var threebr = new ThreeBedroomApartment(Convert.ToDouble(deposit), "Studio", direction, view, Convert.ToInt16(floor), Convert.ToDouble(area));
                                contact.Product.Add(threebr);
                                break;

                            default:
                                break;
                            }
                        }
                        contacts.Add(contact);
                    }
                    catch (System.Exception ex)
                    {
                        return(NotFound($"an error occurred while importing {ex.Message}"));
                    }
                }

                foreach (var item in contacts)
                {
                    var temp = _context.Contact.FirstOrDefault(e => e.FullName == item.FullName);

                    if (temp != null)
                    {
                        //TODO existed
                        // if (item.Identity != null)
                        // {
                        //     if (temp.Identity != null)
                        //     {
                        //         temp.Identity = item.Identity;
                        //     }
                        // }
                        // temp = item;

                        // _context.Entry(temp).State = EntityState.Modified;
                    }
                    else
                    {
                        _context.Contact.Add(item);
                    }
                }

                _context.SaveChanges();

                return(Ok($"updated {contacts.Count} rows"));
            }
        }